[c언어] 라이브러리의 에러 처리 기능
C언어는 에러 처리를 위한 다양한 기능을 제공합니다. 라이브러리 함수를 호출할 때 발생할 수 있는 에러를 처리하고, 적절한 조치를 취할 수 있도록 도와줍니다.
errno 변수
C언어는 errno라는 전역 변수를 제공하여 에러 코드를 저장하는데 사용됩니다. 라이브러리 함수가 에러를 발생시키면 해당 함수가 설정한 에러 코드가 errno에 저장됩니다. 이를 통해 어떤 에러가 발생했는지 확인하고 처리할 수 있습니다.
#include <stdio.h>
#include <errno.h>
int main() {
FILE *fp = fopen("file.txt", "r");
if (fp == NULL) {
printf("Error number: %d\n", errno);
perror("Error message");
}
return 0;
}
위 코드에서 fopen 함수가 파일을 열지 못했을 때 errno를 사용하여 에러 코드를 출력하고, perror 함수를 통해 에러 메시지를 출력합니다.
perror 함수
perror 함수는 전달된 에러 코드에 해당하는 에러 메시지를 출력하는 함수입니다. 에러 코드에 해당하는 메시지는 시스템에 따라 다를 수 있습니다.
strerror 함수
strerror 함수는 전달된 에러 코드에 대한 설명을 문자열로 반환합니다. 이를 통해 errno에 저장된 에러 코드에 대한 더 자세한 정보를 얻을 수 있습니다.
#include <stdio.h>
#include <errno.h>
#include <string.h>
int main() {
FILE *fp = fopen("file.txt", "r");
if (fp == NULL) {
printf("Error message: %s\n", strerror(errno));
}
return 0;
}
위 코드에서 strerror 함수를 사용하여 errno에 저장된 에러 코드에 대한 자세한 정보를 출력합니다.
C언어의 라이브러리 함수를 이용하여 에러 처리를 할 때, errno, perror, strerror 함수를 활용하여 적절한 에러 처리를 할 수 있습니다.
이상으로 C언어 라이브러리의 에러 처리 기능에 대한 내용을 정리했습니다.
참고문헌:
- https://www.tutorialspoint.com/c_standard_library/c_function_strerror.htm
- https://www.tutorialspoint.com/c_standard_library/c_macro_errno.htm