◎ errno이란?
* 표준 라이브러리 함수가 실패했을 때 특정 값을 errno에게 넘긴다.
* errno 변수는 정적 메모리에 위치한다.
* 함수가 넘긴 에러 값은 0보다 큰 값을 반환하고 errno에는 약 120개의 오류 메세지를 구분할 수 있다.
◎ 정적 변수인 errno, 주의할 점
* error의 초기값은 0이고, 에러가 없다면 0, 에러가 있다면 0보다 큰 값을 가지고 있다.
* 특정 함수가 errno을 반환 할 수 있고, errno을 체크하려면 즉각적으로 호출해야한다. 또는 값을 다른 변수에 저장.
(다른 함수가 실행되면 값이 변경되기 때문에)
◎ errno가 숫자라면 어떻게 의미를 알 수 있지?
* 120개의 의미를 문서를 뒤질 필요는 없다.
char* strerror(errno);
* 매개변수 = errno
* errno 값에 해당하는 오류 메세지를 stderr에 출력한다.
* 반환 = 오류가 일어난 주소
void perror(const char* str);
* 매개변수 = 오류 메세지에 추가하고 싶은 str
* 전역 변수 errno을 알아서 가져와 stderr에 출력한다. 이때 "str + (오류 메세지)" 형식으로 출력된다.
반응형
'C' 카테고리의 다른 글
sprintf 함수와 fprintf 함수 (1) | 2020.11.20 |
---|---|
EOF와 fclose() 함수 (0) | 2020.11.14 |
FILE* fopen(const char* file, const char* filemode) (0) | 2020.11.09 |
stderr(Standard Error) (0) | 2020.11.08 |
stdin(Standard Input) (0) | 2020.11.08 |