728x90
반응형
man page에 검색해 보자.
소속 헤더파일:
#include <unistd.h>
함수 프로토타입:
ssize_t write(int fildes, const void *buf, size_t nbyte);
/* fildes는 쓰고자 하는 파일 디스크립터 (file descriptor), buf는 쓰고자 하는 문자의 주소,
nbyte는 해당 위치에서 몇 바이트를 출력할 지 */
함수 설명:
write() attempts to write nbyte of data to the object referenced by the descriptor fildes from the buffer pointed to by buf.
첫 번째 인자인 fd값은 주로 0, 1, 2가 사용되는데 각각 표준 입력, 표준 출력, 표준 에러를 의미한다. 두 번째 인자인 buffer는 대상 주소가 될 것이고, 마지막 인자인 nbyte는 해당 주소로부터 몇 바이트를 쓸 건지 알려준다.
여러 사용 예시가 있다.
char c = 'a';
char str[5] = "Hello";
write(1, &c, 1); // c 문자를 하나 출력한다. -> 'a'
write(1, str, 5); // str 문자열을 5만큼 출력한다. -> "Hello"
여기서 배열은 배열 이름이 곧 시작 주소를 뜻하기에 따로 &기호가 붙지 않는다는 것.
리턴 값:
Upon successful completion the number of bytes which were written is returned. Otherwise, a -1 is returned and the global variable errno is set to indicate the error.
성공적으로 write함수가 동작했다면, 작성된 바이트 수가 리턴된다. 만약 실패했다면, -1 이 리턴되고, 에러를 알리게 된다.
printf 말고 이걸로 출력을 하라니... 바보 같던 printf가 만능 함수 처럼 보이긴 처음이다.
728x90
반응형
'CS 지식 > C, C++' 카테고리의 다른 글
[C] 널 포인터 (Null Pointer) (0) | 2023.01.26 |
---|---|
[C] strdup 함수 (0) | 2023.01.25 |
[C] strstr 함수 (0) | 2023.01.20 |
[C] strcat, strncat 함수 (0) | 2023.01.20 |
[C] strcmp, strncmp 함수 (0) | 2023.01.19 |