Fundamental of Software Develop/: : Linux System Programming

오류 처리 함수 : perror(), strerror()

Jay.P Morgan 2023. 11. 9. 23:44

오류 발생 시 저장되는 전역변수 errno의 상수값만으로는 오류의 의미를 파악하기 어렵다.

(직접 헤더파일을 열고 해당 상수의 정의를 찾아봐야하는 번거로움이 있다)

 

이럴 땐, 오류 코드를 메시지로 변환하여 출력하는 perror(), strerror() 함수를 사용하면 편리하다.

 

  perror()

  perror() 함수는 errno에 저장된 값을 읽어, 해당 메시지를 standard error로 출력한다.

#include <stdio.h>

void perror(const char *s);

  s : 출력할 문자열

access() 함수 오류발생시, perror() 함수 호출하며 인자로 'test.txt' 전달

 

perror()함수의 인자 [test.txt] 이후 : "출력 메시지"가 나타난다..

 

 

 

  strerror()

  strerror() 함수는 ANSI C에서 추가로 정의한 함수로, 함수 인자로 errno에 저장된 값을 오류메시지에 리턴한다. 이 때, 사용자가 리턴된 오류메시지를 알맞게 가공할 수 있다.

#include <string.h>
char *strerror(int errnum);

    errnum : errno에 저장된 값

printf() 함수를 활용해 오류 메시지를 작성할 수 있다.