함수 기능
FILE 스트림 객체에 설정된 에러 플래그를 설정하거나 확인하는 라이브러리 함수
ferror
입출력 에러 발생 여부 확인
feof
eof가 리턴되는 이유가 에러인지 파일 끝인지를 구분
함수 원형
#include <stdio.h>
int ferror(FILE *fp);
int feof(FILE *fp);
void clearerr(FILE *fp);
ferror 리턴 값 : 에러가 없으면 0 에러발생하면 0이 아닌값
feof 리턴 값 : 조건이 참이면 0이 아닌값, 참이 아니면 0
함수 파라메터
fp
파일 포인터
함수 예제
#include<stdio.h>
#include<stdlib.h>
int main(int argc, char *argv[]){
FILE *fp;
int character;
if(argc!=2){
fprintf(stderr,"usage:%s<filename>\n",argv[0]);
exit(1);
}
if((fp=fopen(argv[1],"r"))==NULL){
fprintf(stderr,"fopen error for %s\n",argv[1]);
exit(1);
}
character = fgetc(fp);
while(!feof(fp)){
fputc(character,stdout);
if(ferror(fp)){
fprintf(stderr,"Error detected!!\n");
clearerr(fp);
}
character=fgetc(fp);
}
fclose(fp);
exit(0);
}
함수 결과
리눅스시스템 프로그래밍 - 홍지만 저
교재 내에 있는 예제를 바탕으로 작성한 글 입니다.
'C & LINUX' 카테고리의 다른 글
C / LINUX fputs(3) puts(3) (0) | 2022.05.01 |
---|---|
C / LINUX fgets(3) gets(3) (0) | 2022.05.01 |
C / LINUX read() (0) | 2022.05.01 |
C / LINUX lseek() (0) | 2022.05.01 |
C / LINUX creat() (0) | 2022.05.01 |