【기 능】 err상태정보를 클리어 한다.
【소 속】 stdio.h
#include <stdio.h>
【서 식】
void clearerr(FILE *fp);
【설 명】
파일 포인터인 fp에 들어있는 에러 플래그 또는 종단 플래그를 클리어 한다.
1) 파일을 쓰기 모드로 열고서 읽기를 하면(그 반대도) fp에 에러 플래그가 설정된다.
이 에러 플래그는 래치 되는데 이 에러 플래그를 지워 주는것이 clearerr()이다.
2)파일을 읽다가 마지막에 도달하면 fp에 종단 플래그가 설정된다.
이 종단 플래그를 지워 주는것이 clearerr()이다.
.
【인 수】
FILE *fp : file pointer. 파일 정보(읽고 쓸 수 있는 위치)를 가지고 있는 핸들러
【리턴 값】
없음
【사용 예】
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
FILE *fp;
int c;
/* 쓰기 모드로 파일을 오픈한다 */
if( (fp = fopen("test_data.txt", "w") ) == NULL ) {
fprintf(stderr, "파일 오프 에러\n");
exit(EXIT_FAILURE);
}
/* 파일을 읽는다 */
c = fgetc(fp);
putchar(c);
if( ferror(fp) != 0 )
{
/* 에러 발생 */
printf("파일 리드시 에러 발생.\n");
/* 에러 플래그 또는 종단 플래그를 클리어 */
clearerr(fp);
}
if( ferror(fp) == 0 )
{
printf("파일 에러가 삭제 되었다\n");
}
fclose(fp);
return 0;
}
【결 과】
파일 리드시 에러 발생
파일 에러가 삭제 되었다