Notice
Recent Posts
Recent Comments
Link
두근두근이야기
read() 함수 본문
데이터를 파일에서 읽어오는 함수이다. 열린파일에서 자료를 읽을 때 사용한다.
현재 파일 offset에서 nbytes만큼의 데이터를 읽어 들인다.
파일에서 데이터를 읽은 후 파일 offset은 마지막으로 읽어 들인 byte만큼 옮겨 가게 된다.
#include<unistd.h> ssize_t read(int filedes, void *buf, size_t nbytes); 반환값: 읽은 바이트의수, 파일의 끝인 경우는 0, 오류시 -1 |
-read 호출이 성공하면 실제로 읽은 바이트 수가 반환됨
-파일의 끝을 읽으려 한 경우에는 0이 반환됨(파일offset이 이미 파일의 끝에 있는 경우)
-실제로 읽은 바이트 수(반환값)가 호출시 요청한 바이트 수(nbytes 인수)보다 작은 경우
정규 파일을 읽을 때, 요청된 수만큼의 바이트들을 읽기 전에 파일의 끝에 도달
터미널 파일에서 자료를 읽을 때
네트워크에서 자료를 읽을 때
파이프나 FIFO에서 자료를 읽을 때
레코드 기반 장치에서 자료를 읽을 때
요청된 크기의 자료 중 일부만을 읽은 상황에서 시그널에 의해 연산이 가로채였을 때
의 경우가 있음
다시 위 함수를 보면 정의에서 볼 수 있듯이 파일디스크립터(filedes), buf, nbytes인자를 취한다. buf는 읽어들인 데이터를 저장할 버퍼의 포인터이다. nbytes는 읽어들일 바이트 수이다. nbytes만큼 데이터를 읽어 들이게 된다.
'IT > IT ::Linux' 카테고리의 다른 글
우분투 터미널에서 컴퓨터끄기 (0) | 2013.04.02 |
---|---|
현재 프로세스 보기 및 죽이기 (0) | 2013.04.02 |
우분투에서 한영키!!!! (0) | 2013.03.17 |
[파일i/o] lseek 함수 예제 (0) | 2013.03.13 |
[파일i/o] lseek 함수 (0) | 2013.03.13 |