C언어/stdio.h

[C언어] ferror 함수 (stdio.h)

아무일도없었다 2022. 9. 5. 23:41

사용범위

Windows, Unix 등 모든 OS에서 사용가능한 표준 API 함수

기능

C언어 표준 함수로 file 스트림에서 읽기 또는 쓰기 작업시 오류 발생 확인시 사용한다.

헤더

#include <stdio.h>

※ ferror 함수 사용시 stdio.h 파일을 include 하지 않는다면 컴파일시 error 발생 ※


함수

int ferror(FILE* file);

파라미터

  • FILE* file
    • fopen 함수를 통해 열린 file stream을 입력한다.

반환값 (return)

File stream 오류가 없는 경우      0 을 반환한다.
File stream 오류가 발생한 경우  0 이 아닌 값을 반환한다.

 

 

<소스 코드>

#include <stdio.h>

#define MAX_BUF_SIZE 128

int main() {
    FILE *fp;
    char buffer[MAX_BUF_SIZE] = {0,};

    fp = fopen("test.txt", "w");
    if (fp != NULL) {
        fgets(buffer, MAX_BUF_SIZE, fp);
        if (ferror(fp)) {
            // 오류 발생 (Write Mode 에서 Read 시도함)
            printf("fgets error\n");
        } else {
            // 오류 없음
            printf("Data[%s]\n", buffer);
        }
        fclose(fp);
    } else {
        // fopen 함수 실패
    }
    return 0;
}

 

※ 실행 결과

fgets error

 

반응형