Error Global Variable
Header 파일
- errno
#include <errno.h>
- strerror()
#include <string.h>
errno
는 에러 번호를 담는 global variable 이다.- 즉, 만약에 에러가 났다면
errno
에 에러 번호가 담기게 되고, 이 변수는 (global 이기 때문에) 별도의 선언 없이 사용할 수 있다.
- 즉, 만약에 에러가 났다면
- 그리고
strerror()
함수를 이용해 errno 를 문자열로 바꿔줄 수 있다. - 다음의 예시를 보시라.
#include <stdio.h>
#include <fcntl.h>
#include <errno.h>
#include <string.h>
int main(void)
{
int fd = open(file: "not-exist-file", oflag: O_RDONLY, 0644);
if (fd < 0)
{
printf(format: "Errno: %d, message: '%s'\n", errno, strerror(errnum: errno));
}
}
- 위 예시에서는
"not-exist-file"
라는 존재하지 않는 파일을 open 하려고 하는 모습이다. - 따라서 이때는 당연히 음수
fd
가 반환되고, 이때의errno
와 error message 를 출력해보면 다음과 같다.
- 위에서 확인할 수 있다시피, 2 번은
ENOENT
로서 파일이 존재하지 않는다는 것을 의미한다. - 각 번호가 어떤것인지는 bash 에서
errno
명령어로 확인해 볼 수 있다.- 귀찮다면, 이 링크 에서도 볼 수 있다.
errno -l