feof

스트림의 파일 끝을 테스트합니다.

구문

int feof(
   FILE *stream
);

매개 변수

stream
FILE 구조체에 대한 포인터입니다.

반환 값

feof 함수는 읽기 작업이 파일의 끝 부분을 지나서 읽으려고 한 경우 0이 아닌 값을 반환하고, 그렇지 않으면 0을 반환합니다. 스트림 포인터인 경우 함수는 NULL매개 변수 유효성 검사에 설명된 대로 잘못된 매개 변수 처리기를 호출합니다. 계속해서 실행하도록 허용된 경우 errnoEINVAL로 설정되고 feof에서 0을 반환합니다.

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

설명

feof 루틴(함수와 매크로 모두로 구현됨)은 stream의 끝을 지났는지 여부를 확인합니다. 파일의 끝을 지난 경우 읽기 작업은 스트림이 닫힐 때까지 또는 rewind, fsetpos, fseek 또는 clearerr가 이에 대해 호출될 때까지 파일 표시기의 끝을 반환합니다.

예를 들어 파일에 10바이트가 포함되어 있고 파일에서 10바이트를 읽는 경우 파일 feof 포인터가 파일 끝에 있더라도 끝까지 읽으려고 시도하지 않았기 때문에 0을 반환합니다. 11번째 바이트를 읽으려고 시도한 후에만 feof에서 0이 아닌 값을 반환합니다.

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

요구 사항

함수 필수 헤더
feof <stdio.h>

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

예시

// crt_feof.c
// This program uses feof to indicate when
// it reaches the end of the file CRT_FEOF.TXT. It also
// checks for errors with ferror.
//

#include <stdio.h>
#include <stdlib.h>

int main( void )
{
   int  count, total = 0;
   char buffer[100];
   FILE *stream;

   fopen_s( &stream, "crt_feof.txt", "r" );
   if( stream == NULL )
      exit( 1 );

   // Cycle until end of file reached:
   while( !feof( stream ) )
   {
      // Attempt to read in 100 bytes:
      count = fread( buffer, sizeof( char ), 100, stream );
      if( ferror( stream ) )      {
         perror( "Read error" );
         break;
      }

      // Total up actual bytes read
      total += count;
   }
   printf( "Number of bytes read = %d\n", total );
   fclose( stream );
}

입력: crt_feof.txt

Line one.
Line two.

출력

Number of bytes read = 19

참고 항목

오류 처리
스트림 I/O
clearerr
_eof
ferror
perror, _wperror