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