읽기(시스템콜)
read (system call)![]() |
현대의 POSIX 준거 운영체제에서는 파일시스템에 저장되어 있는 파일의 데이터에 액세스 할 필요가 있는 프로그램이 읽기 시스템 호출을 사용합니다.파일은, 통상, 오픈 하기 위해서 이전의 콜로부터 취득한 파일 기술자에 의해서 식별됩니다.이 시스템 콜은, 발신자가 지정한 바이트 단위의 데이터를 파일에서 읽어내, 호출 프로세스에 의해서 제공된 버퍼에 보존합니다.
읽기 시스템 호출에는 다음 3가지 인수가 사용됩니다.
- 파일의 파일 기술자.
- 읽기 데이터가 저장되는 버퍼와
- 파일에서 읽을 바이트 수입니다.
POSIX 사용 현황
읽기 시스템 콜인터페이스는 POSIX 사양에 따라 표준화되어 있습니다.파일의 데이터는 읽기 함수를 호출하여 읽습니다.
ssize_t 읽어주세요(인트 fd, 무효 *부프, size_t 세어보세요);
반환되는 값은 읽은 바이트 수(0은 파일의 끝을 나타냄)이며 파일 위치는 이 숫자만큼 진행됩니다.이 수치가 요구된 바이트 수보다 작을 경우 오류가 발생하지 않습니다.예를 들어 현재 실제로 사용할 수 있는 바이트 수가 적거나(아마도 파일 종료에 가깝거나 파이프 또는 단말기에서 읽고 있거나), 시스템콜이 신호에 의해 중단되었기 때문일 수 있습니다.
또는 오류가 발생했을 때 -1을 반환하고, 이 경우 errno를 적절히 설정하고, 또한 파일 위치(있는 경우)의 변경 여부를 지정하지 않은 상태로 둔다.