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

 

 

블로그 이미지

사용자 자연&사람

행복한 개발자 programmer since 1995.

댓글을 달아 주세요