WRITE
Section: 리눅스 프로그래머 매뉴얼 (2)
Updated: 1996년 1월 13일
Index
Return to Main Contents
이름
write - 파일 기술자가 가리키는 파일에 쓴다.
사용법
#include <unistd.h>
ssize_t write(int fd, const void *buf, size_t count);
설명
write는
buf로
시작하는 버퍼에서 파일 기술자
fd로
참조되는 파일에
count
바이트까지를 쓴다.
POSIX는 write()가 반환된 후 새로운 데이터가 반환될 수 있다는
것을 증명하도록 read()를 요구한다.
모든 파일 시스템이 POSIX를 따르지는 않는다.
반환값
성공시, 쓰여진 바이트 수를 반환한다(0은 쓰여진 것이 없음을 나타낸다.)
에러라면, -1을 반환하며 errno는 적당한 값으로 설정된다.
만일 count가 0이고 파일 기술자가 정규 파일을 가리킨다면 0은 다른
결과를 야기시키지 않고 반환된다.
특수 파일에서의 결과는 호환되지 않는다.
에러
- EBADF
-
fd가
유효한 파일 기술자가 아니거나 쓰여지기 위해 열려지지 않았다.
- EINVAL
-
fd가
쓰기에 적당하지 않은 객체와 연결되었다.
- EFAULT
-
buf가
접근할 수 없는 주소 공간을 가리키고 있다.
- EPIPE
-
fd가
읽을 끝이 닫혀진 소켓이나 파이프에 연결되었다.
이것은 쓰고 있는 프로세스가
SIGPIPE
신호를 받았을때 일어난다; 이것이 잡히고, 봉쇄나 무시되면
EPIPE
에러가 리턴된다.
- EAGAIN
-
넌-블록킹 I/O가
O_NONBLOCK을
사용하였고 즉시 데이터를 쓰기 위해
fd와
연결된 파이프나 소켓에 공간이 없다.
- EINTR
-
어떤 데이터를 쓰기전 에 시스템 콜이 어떤 신호에 의해 인터럽트 되었다.
- ENOSPC
-
fd로
참조되는 파일을 포함하는 장치가 데이터를 위한 공간이 없다.
- EIO
-
inode를 수정하는 동안 저레벨 I/O 에러가 일어났다.
fd와
연결된 객체에 의존하여 다른 에러가 일어날 수 있다.
호환
SVr4, SVID, POSIX, X/OPEN, 4.3BSD.
SVr4 문서에는 EDEADLK, EFBIG, ENOLCK, ENOLNK, ENOSR, ENXIO, EPIPE, ERANGE의
새로운 에러 조건이 추가되었다. SVr4에서는 데이터가 실제로 쓰여지기 이전
어느 시점에서도 쓰기 작업이 인터럽트 되어 EINTR 값이 반환될 수 있다.
관련 항목
open(2),
read(2),
fcntl(2),
close(2),
lseek(2),
select(2),
ioctl(2),
fsync(2),
fwrite(3)
역자
정강훈 <skyeyes@soback.kornet.net>, 2000년 5월 29일
Index
- 이름
-
- 사용법
-
- 설명
-
- 반환값
-
- 에러
-
- 호환
-
- 관련 항목
-
- 역자
-
This document was created by
man2html,
using the manual pages.
Time: 08:07:01 GMT, March 25, 2004