본문 바로가기

C-Language/Error Handling

Error Handling in C language

C 언어에서 에러 다루기


C 언어는 실행 중에 오류가 발생하면 전역변수인 errno 에 오류코드가 저장된다. 이 때 perror() 함수를 호출하면 오류 메시지가 문자열로 화면에 출력된다. errno 변수에 0이 저장되어 있는 경우에는 오류가 발생하지 않았다는 것을 의미한다. strerror() 함수는 오류 메시지 문자열 포인터를 리턴한다. <errno.h> 헤더파일에 errno, perror(), strerror() 함수가 선언되어 있다


#include <stdio.h>
#include <errno.h>
#include <string.h>

extern int errno;

int main() {

	FILE * pf;
	int errcode;
	pf = fopen("없는파일.txt", "rb");

	if (pf == NULL) {

		errcode = errno;

		printf("오류코드:%d \n", errcode);

		// perror()는 주어진 문자열 뒤에 : 을 붙이고 이어서 오류 메시지를 출력한다
		perror("파일열기 오류");

		// strerror(에러코드) 는 오류 메시지 문자열 포인터를 리턴한다
		printf("파일열기 오류: %s\n", strerror(errcode));
	}
	else {
		fclose(pf);
	}

	return 0;
}



위의 코드를 실행한 결과

오류코드:2

파일열기 오류: No such file or directory

파일열기 오류: No such file or directory