다음을 통해 공유


_read

파일에서 데이터를 읽습니다.

구문

int _read(
   int const fd,
   void * const buffer,
   unsigned const buffer_size
);

매개 변수

fd
열려 있는 파일을 참조하는 파일 설명자입니다.

buffer
데이터의 스토리지 위치입니다.

buffer_size
읽을 최대 바이트 수입니다.

반환 값

_read 는 파일에 남아 있는 바이트보다 작거나 파일이 텍스트 모드에서 열린 경우보다 buffer_size buffer_size 작을 수 있는 읽은 바이트 수를 반환합니다. 텍스트 모드에서 각 캐리지 리턴 라인 피드 쌍 \r\n 은 단일 줄 바꿈 문자 \n로 바뀝다. 한 줄 피드 문자만 반환 값에 계산됩니다. 대체는 파일 포인터에 영향을 주지 않습니다.

함수는 파일의 끝에서 읽기를 시도하는 경우 0을 반환합니다. 유효하지 않은 경우 fd 파일이 읽기 위해 열려 있지 않거나 파일이 잠겨 있으면 매개 변수 유효성 검사에 설명된 대로 잘못된 매개 변수 처리기가 호출됩니다. 계속해서 실행하도록 허용한 경우 함수는 -1을 반환하고 errnoEBADF로 설정합니다.

이면 buffer 잘못된 buffer_size>INT_MAX매개 변수 처리기가 호출됩니다.NULL 계속 실행하도록 허용된 경우 함수는 -1을 반환하고 errnoEINVAL로 설정됩니다.

이 코드 및 기타 반환 코드에 대한 자세한 내용은 , _doserrno_sys_nerr_sys_errlist를 참조하세요.errno

설명

함수는 _read 연결된 fd파일에서 최대 buffer_size 바이트를 buffer 읽습니다. 읽기 작업은 지정된 파일과 연결된 파일 포인터의 현재 위치에서 시작됩니다. 읽기 작업 후 파일 포인터는 읽지 않은 다음 문자를 가리킵니다.

파일을 텍스트 모드에서 연 경우 _read가 파일 끝 표시기로 처리되는 CTRL+Z 문자를 발견하면 읽기는 종료됩니다. 파일 끝 표시기를 지우는 데 사용합니다 _lseek .

기본적으로 이 함수의 전역 상태는 애플리케이션으로 범위가 지정됩니다. 이 동작을 변경하려면 CRT 전역 상태를 참조하세요.

요구 사항

루틴에서 반환된 값 필수 헤더
_read <io.h>

호환성에 대한 자세한 내용은 호환성을 참조하세요.

라이브러리

모든 버전의 C 런타임 라이브러리입니다.

예시

// crt_read.c
/* This program opens a file named crt_read.txt
* and tries to read 60,000 bytes from
* that file using _read. It then displays the
* actual number of bytes read.
*/

#include <fcntl.h>      /* Needed only for _O_RDWR definition */
#include <io.h>
#include <stdlib.h>
#include <stdio.h>
#include <share.h>

char buffer[60000];

int main( void )
{
   int fh, bytesread;
   unsigned int nbytes = 60000;

   /* Open file for input: */
   if ( _sopen_s( &fh, "crt_read.txt", _O_RDONLY, _SH_DENYNO, 0 ))
   {
      perror( "open failed on input file" );
      exit( 1 );
   }

   /* Read in input: */
   if (( bytesread = _read( fh, buffer, nbytes )) <= 0 )
      perror( "Problem reading file" );
   else
      printf( "Read %u bytes from file\n", bytesread );

   _close( fh );
}

입력: crt_read.txt

Line one.
Line two.

출력

Read 19 bytes from file

참고 항목

하위 수준 I/O
_creat, _wcreat
fread
_open, _wopen
_write