Provided by:
manpages-ko_20050219-2_all 
읽기를 시도한다.
만일 count가 0이라면 read()는 0을 반환하며 다른 결과는 가지지 않는다.
만일 count가 SSIZE_MAX보다 크다면, 결과는 예측할 수 없다.
포인터의 위치는 읽은 수만이동된다. 만일 이 수가 요구된 바이트의
수보다 작더라도 에러는 아니다; 이것은 실제로 즉시 이용할 수 있는
바이트가 거의 없기 때문이거나 (아마도 이것은 파일의 끝이어 닫았거나
파이프나 단말기에읽기 때문이다.) read()가 어떤 신호에 의해 인터럽트가
되었기 때문이다.
에러시, -1을 리턴하며 errno는 적당한 값으로 설정된다. 이 경우 파일
포인터의 위치가 바뀔지 어떨지는 예측할수 없다.
EAGAIN 넌-블록킹 I/O가 O_NONBLOCK을 사용하여 선택되어졌고 즉시 읽을 수
있는 데이터가 없다.
EIO I/O 에러. 이것은 백그라운드 프로세스 그룹에 있는 프로세스가
제어되는 tty 단말기에읽기를 시도할때, 그리고 이것이 무시되거나
봉쇄되는 SIGTTIN이거나 또는 프로세스 그룹이 고아일때 일어낫
또한 디스크나 테이프에 읽는동안 저레벨(low-level) I/O 에러가
있을 때 일어낫
EISDIR fd가 디렉토리를 가리킨다.
EBADF fd가 유효한 파일 기술자가 아니거나 읽기 위해 옆좋痴않았다.
EINVAL fd가 읽기에 적당하지 않은 객체와 연결되었다.
EFAULT buf는 접근할 수 없는 주소공간을 가리키고 있다.
fd에 접속된 객체에 의존하여 다른 에러가 일어날 수 있다. POSIX는 데이터
일부를 읽은 후 인터럽트 되었을 경우 read가 -1이나( errno는 EINTR로
설정된다.) 이미 읽은 바이트의 수를 리턴하도록 허용한다.
RESTRICTIONS
NFS 파일 시스템에 읽은 적은 양의 데이터는 단지 처음 타임 스탬프에섯 갱신되며 연속적인 콜은 그렇게 하지 않는다. 이것은 캐싱(caching)하는
클라이언트 쪽 특성 때문인데, 모든 NFS 클라이언트가 섰熾 접근
시간(atime) 갱신을 하지는 않으며 클라이언트 쪽 캐쉬에 읽기를 한
클라이언트는 섰쪽 읽기가 없기 때문에 섰熾접근시간 갱신을 하지 않기
때문이다. UNIX 구문은 클라이언트 쪽 캐싱 특성을 불가능하게 하여
얻어지며 이것은 대부분의 상황에 섰 부하를 증가시키고 성능을
감소시킨다.
select(2), write(2), fread(3)