【기 능】 파일의 에러발생 상태를 확인해서 돌려준다.
【소 속】 stdio.h
#include <stdio.h>
【서 식】
int ferror(FILE *fp);
【설 명】
fp가 가리키는 파일의 에러 발생상태(에러 지시자)를 확인해서 돌려준다.
예를들어 쓰기 모드로 오픈한 파일을 읽기처리 하면, 파일의 에러 지시자가 설정된다.
파일을 오픈할 때 발생하는 에러는 fopen등의 오픈함수로 알 수 있지만, 파일을
읽고 쓸때 발생하는 에러는 이 ferror로 검출한다.
에러 지시자의 클리어는 clearerr함수로 할 수 있다.
【인 수】
FILE *fp : file pointer. fopen함수로 오픈한 파일정보를 가지고 있는 핸들러
【리턴 값】
에러 지시자가 설정되어 있으면 : 0이외의 수
에러 지시가가 설정되어 있지 않으면 : 0
【사용 예】
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
FILE *fp;
int iRetn;
/* 쓰기 모드로 파일을 오픈한다 */
if( (fp = fopen("test_data.txt", "w") ) == NULL ) {
printf("파일 오픈 에러\n");
exit(EXIT_FAILURE);
}
else{
printf("파일 오픈 성공\n");
}
/* 오픈한 파일에서 1바이트를 읽는다 */
iRetn = fgetc(fp);
putchar(iRetn);
printf("\n");
if(ferror(fp) != 0){
printf("파일 실행 에러 발생\n");
clearerr(fp);
}
else{
printf("파일 실행 에러 미발생\n");
}
/* 오픈한 파일을 닫는다(close) */
iRetn = fclose(fp);
if(iRetn != 0){
printf("파일 클로즈 에러\n");
}
else{
printf("파일 클로즈 성공\n");
}
return 0;
}
【결 과】
파일 오픈 성공
파일 실행 에러 발생
파일 클로즈 성공