C 언어의 clearerr() 함수

  • 2 minutes to read

clearerr()는 C 언어의 표준 라이브러리 함수 중 하나로, 파일의 오류 플래그와 EOF(End Of File) 플래그를 초기화하는 데 사용됩니다. 이 함수는 stdio.h 헤더 파일에 선언되어 있습니다.

함수의 원형은 다음과 같습니다:

void clearerr(FILE *stream);

clearerr() 함수는 하나의 매개변수를 받습니다. 이 매개변수는 오류 및 EOF 플래그를 초기화하려는 파일의 포인터를 나타냅니다. 함수는 반환 값을 가지지 않습니다.

아래는 clearerr() 함수를 이용하여 파일의 오류 및 EOF 플래그를 초기화하는 간단한 C 프로그램 예제입니다:

#include <stdio.h>

int main() {
    FILE *file = fopen("test.txt", "r");
    if (file == NULL) {
        printf("파일을 열 수 없습니다.\n");
        return 1;
    }

    char buffer[10];
    fread(buffer, sizeof(char), 10, file);

    if (ferror(file)) {
        printf("파일 읽기 중 오류가 발생하였습니다.\n");
        clearerr(file);
        if (!ferror(file)) {
            printf("오류 플래그가 성공적으로 초기화되었습니다.\n");
        }
    } else {
        printf("파일 읽기가 성공적으로 수행되었습니다.\n");
    }

    fclose(file);
    return 0;
}

위 코드는 "test.txt"라는 이름의 파일을 읽기 모드("r")로 열고, fread() 함수를 사용해 파일에서 10개의 문자를 읽습니다. 데이터 읽기가 끝나면 ferror() 함수를 사용해 오류가 발생했는지 확인합니다. 오류가 발생했다면 clearerr() 함수를 사용해 오류 플래그를 초기화하고, 초기화가 성공적으로 이루어졌는지 다시 확인합니다. 작업이 모두 끝나면 fclose() 함수를 사용해 파일을 닫습니다.

VisualAcademy Docs의 모든 콘텐츠, 이미지, 동영상의 저작권은 박용준에게 있습니다. 저작권법에 의해 보호를 받는 저작물이므로 무단 전재와 복제를 금합니다. 사이트의 콘텐츠를 복제하여 블로그, 웹사이트 등에 게시할 수 없습니다. 단, 링크와 SNS 공유, Youtube 동영상 공유는 허용합니다. www.VisualAcademy.com
박용준 강사의 모든 동영상 강의는 데브렉에서 독점으로 제공됩니다. www.devlec.com