반응형
ferror(3)
#include <stdio.h>
int ferror(FILE *stream);
stream관련 많은 함수들이 에러와 EOF를 구별하는 방법을 제공하지 않는 데, 오류가 발생하였는 지 여부를 이 ferror(3)함수의 return 값으로 확인합니다. 오류가 발생하였으면, 0이 아닌 오류 번호를 return합니다.
파라미터
stream
- fopen(3) 등을 통해서 생성된 stream으로 오류가 설정되었는 지 검사할 stream
RETURN
0
- 이전에 호출한 stream함수에는 오류가 없습니다.
0 아닌 값
- 오류번호입니다.
- 오류내용은 strerror(오류번호)로 확인합니다.
활용 예제
Sample
#include <stdio.h>
#include <string.h>
......
FILE *fp;
int size;
int size2;
char buffer[4096];
......
size2 = fread(buffer, 1, size, fp);
if(size != size2) {
if(ferror(fp)) {
fprintf(stderr, "Read Error: %s\n", strerror(ferror(fp)));
return -1;
}
if(feof(fp)) {
printf("end of file...\n");
}
clearerr(fp);
}
......
see also: File / Directory 처리 관련 API
반응형
'C언어 header > stdio.h' 카테고리의 다른 글
clearerr(3) - 오류 및 eof 상태 초기화 (0) | 2019.09.24 |
---|---|
feof(3) - 파일의 끝에 도달여부 확인 (0) | 2019.09.24 |
rewind(3) - stream 읽기/쓰기 위치를 처음으로 (0) | 2019.09.24 |
fflush(3) - stream buffer를 쓰기를 수행하여 비움 (0) | 2019.09.24 |
ftell(3) - stream의 읽기/쓰기 위치 얻기 (0) | 2019.09.24 |