다음을 통해 공유


_read

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

int _read(
   int fd,
   void *buffer,
   unsigned int count 
);

매개 변수

  • fd
    파일 설명자를 열린 파일을 참조 합니다.

  • 버퍼
    데이터에 대 한 저장소 위치입니다.

  • 개수
    최대 바이트 수입니다.

반환 값

_읽기 작을 수 읽은 바이트 수를 반환 보다 보다 적은 경우 바이트 왼쪽에 파일, 파일을 텍스트 모드로 연 경우 각 캐리지 return–line 쌍 (CR LF) 공급 하는 경우에 단일 줄 바꿈 문자로 대체 됩니다.단일 줄 바꿈 문자는 반환 값의 개수가 계산 됩니다.대체 파일 포인터를 변경 되지 않습니다.

파일의 끝에 읽기 함수를 시도 하는 경우 0을 반환 합니다.경우 fd 입니다, 잘못 된 파일 읽기 위해 열려 있지 않은 또는 파일이 잠겨, 설명에 따라 잘못 된 매개 변수 처리기가 호출 매개 변수 유효성 검사.실행을 계속 하려면 함수 반환-1 및 집합 수 있으면 errnoEBADF.

경우 버퍼 입니다 NULL, 잘못 된 매개 변수 처리기를 호출 합니다.실행 계속 수 있으면 함수는-1을 반환 하 고 errno 로 설정 됩니다 EINVAL.

이 및 다른 반환 코드에 대 한 자세한 내용은 참조 하십시오. _doserrno, errno, _sys_errlist, 및 _sys_nerr.

설명

_read 함수에 최대 읽기 바이트 버퍼 연관 된 파일을 fd.지정 된 파일과 관련 된 파일 포인터의 현재 위치에서 읽기 작업을 시작 합니다.읽기 작업을 수행한 후 파일 포인터를 다음 읽지 않은 문자를 가리킵니다.

파일을 텍스트 모드로 연 경우 읽기 때 종료 _read 파일 끝 표시기로 간주 되는 CTRL + Z 문자 발생 합니다.사용 _lseek 파일의 끝 표시기의 선택을 취소 합니다.

요구 사항

루틴

필수 헤더

_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;
   unsigned int nbytes = 60000, bytesread;

   /* 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.

Output

Read 19 bytes from file

참고 항목

참조

하위 수준 I/O

_creat, _wcreat

fread

_open, _wopen

_write