Namespaces
Variants

feof

From cppreference.net
< c ‎ | io
헤더 파일에 정의됨 <stdio.h>
int feof ( FILE * stream ) ;

주어진 파일 스트림의 끝에 도달했는지 확인합니다.

목차

매개변수

stream - 확인할 파일 스트림

반환값

스트림의 끝에 도달한 경우 0이 아닌 값을 반환하고, 그렇지 않으면 0

참고 사항

이 함수는 가장 최근 I/O 작업에서 보고된 스트림 상태만 보고하며, 관련 데이터 소스를 검사하지 않습니다. 예를 들어, 가장 최근 I/O가 파일의 마지막 바이트를 반환한 fgetc 라면, feof 는 0을 반환합니다. 다음 fgetc 는 실패하고 스트림 상태를 end-of-file 로 변경합니다. 그때서야 feof 가 0이 아닌 값을 반환합니다.

일반적인 사용에서 입력 스트림 처리는 오류 발생 시 중단됩니다; feof ferror 는 이후 다양한 오류 조건을 구분하는 데 사용됩니다.

예제

#include <stdio.h>
#include <stdlib.h>
int main(void)
{
    const char* fname = "/tmp/unique_name.txt"; // or tmpnam(NULL);
    int is_ok = EXIT_FAILURE;
    FILE* fp = fopen(fname, "w+");
    if (!fp)
    {
        perror("File opening failed");
        return is_ok;
    }
    fputs("Hello, world!\n", fp);
    rewind(fp);
    int c; // note: int, not char, required to handle EOF
    while ((c = fgetc(fp)) != EOF) // standard C I/O file reading loop
        putchar(c);
    if (ferror(fp))
        puts("I/O error when reading");
    else if (feof(fp))
    {
        puts("End of file is reached successfully");
        is_ok = EXIT_SUCCESS;
    }
    fclose(fp);
    remove(fname);
    return is_ok;
}

가능한 출력:

Hello, world!
End of file is reached successfully

참조문헌

  • C11 표준 (ISO/IEC 9899:2011):
  • 7.21.10.2 feof 함수 (p: 339)
  • C99 표준 (ISO/IEC 9899:1999):
  • 7.19.10.2 feof 함수 (p: 305)
  • C89/C90 표준 (ISO/IEC 9899:1990):
  • 4.9.10.2 feof 함수

참조 항목

오류를 지움
(함수)
현재 오류에 해당하는 문자열을 stderr 에 출력
(함수)
파일 오류를 검사함
(함수)
C++ 문서 for feof