char * strerror ( int errno ); 에러 번호를 설명하는 에러 문자열을 반환하는 함수
입력 매개 변수 리스트
errno 에러 번호
반환 값
에러 번호에 대응하는 에러 메시지
가장 최근에 발생한 에러 번호는 errno 변수에 있습니다. errno 변수는 <errno.h> 헤더 파일을 포함하면 접근할 수 있습니다.
사용 예
//C언어 표준 라이브러리 함수 가이드 //char * strerror ( int errno ); 에러 번호를 설명하는 에러 문자열을 반환하는 함수 //에러 메시지 목록 출력 및 없는 파일을 읽기 모드로 열었을 때 에러 번호와 에러 메시지 출력 #include <stdio.h> #include <errno.h> #include <string.h> void ListErrorMsg() { int i = 0; char *errmsg; printf("== Error Message List ==\n"); for(i=0;i<45;i++) { errmsg = strerror(i);//에러 메시지 확인 printf("<%d>:%s\n",i,errmsg);//에러 번호와 에러 메시지 출력 } } int main(void) { FILE * fp; ListErrorMsg();//에러 번호와 에러 메시지 목록 출력 printf("\n없는 파일 읽기 모드로 열었을 때의 에러 메시지 확인하기\n"); fp = fopen ("noexist.txt","rt");//읽기 모드로 없는 파일 열기 if (fp == NULL)//파일 스트림이 NULL일 때 { perror("file not existed");//에러 메시지 출력 printf ("%d: %s\n",errno,strerror(errno));//에러 번호와 에러 메시지 출력 return 0; } fclose(fp); return 0; }
출력
== Error Message List == <0>:No error <1>:Operation not permitted <2>:No such file or directory <3>:No such process <4>:Interrupted function call <5>:Input/output error <6>:No such device or address <7>:Arg list too long <8>:Exec format error <9>:Bad file descriptor <10>:No child processes <11>:Resource temporarily unavailable <12>:Not enough space <13>:Permission denied <14>:Bad address <15>:Unknown error <16>:Resource device <17>:File exists <18>:Improper link <19>:No such device <20>:Not a directory <21>:Is a directory <22>:Invalid argument <23>:Too many open files in system <24>:Too many open files <25>:Inappropriate I/O control operation <26>:Unknown error <27>:File too large <28>:No space left on device <29>:Invalid seek <30>:Read-only file system <31>:Too many links <32>:Broken pipe <33>:Domain error <34>:Result too large <35>:Unknown error <36>:Resource deadlock avoided <37>:Unknown error <38>:Filename too long <39>:No locks available <40>:Function not implemented <41>:Directory not empty <42>:Illegal byte sequence <43>:Unknown error <44>:Unknown error 없는 파일 읽기 모드로 열었을 때의 에러 메시지 확인하기 file not existed: No such file or directory 2: No such file or directory