feof
스트림의 파일 끝을 테스트합니다.
구문
int feof(
FILE *stream
);
매개 변수
stream
FILE
구조체에 대한 포인터입니다.
반환 값
feof
함수는 읽기 작업이 파일의 끝 부분을 지나서 읽으려고 한 경우 0이 아닌 값을 반환하고, 그렇지 않으면 0을 반환합니다. 스트림 포인터인 경우 함수는 NULL
매개 변수 유효성 검사에 설명된 대로 잘못된 매개 변수 처리기를 호출합니다. 계속해서 실행하도록 허용된 경우 errno
가 EINVAL
로 설정되고 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