반응형
1. perror
#include <stdio.h>
void perror(const char *string);
perror() 함수는 오류 메세지를 stderr로 출력한다.
string이 NULL이 아니고 널 문자를 가리키지 않는 경우, string에서 지정된 스트링은 표준 오류 스트림으로 출력되고 콜론과 간격이 이어진다.
errno의 값과 연관된 메세지가 출력된 다음 줄 바꾸기 문자가 이어진다.
정확한 결과를 도출하려면, 라이브러리 함수가 오류를 리턴한 다음 바로 perror() 함수가 호출되어야 한다. 그렇지 않으면 후속 호출은 errno 값을 변경할 수 있다.
리턴값
리턴값이 없다.
사용예시
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
FILE *fh;
if ((fh = fopen("mylib/myfile","r")) == NULL)
{
perror("Could not open data file");
abort();
}
}
2. strerror
#include <string.h> // C++ 에서는 <cstring>
char* strerror(int errnum);
오류 메세지 문자열을 가리키는 포인터를 얻어온다.
errnum 의 값을 통해 발생하였던 오류에 알맞은 오류 메세지를 가리키는 포인터를 리턴한다.
이 때 리턴되는 포인터는 문자열 리터럴을 가리키고 있기 때문에 그 내용이 바뀔 수 없다.
참고로 strerror 에 의해 출력되는 오류 메세지는 현재 사용중인 컴파일러나 플랫폼에 따라 다를 수 있다.
<사용하기>
perror(strerr(errno)) ;
strerror가 errno에 맞는 string을 반환하면, perror가 그 string을 인자로 받아서 표준 오류 스트링으로 출력한다.
반응형
'CS(computer science)' 카테고리의 다른 글
[linux 뽀개기] - cd 명령어 구현하기 (1) | 2023.01.05 |
---|---|
[linux 뽀개기] - pwd - 명령어 구현하기 (0) | 2023.01.04 |
[linux 뽀개기] - tcgetattr - 터미널 정보를 저장하는 함수 , ECHOCTL (0) | 2023.01.03 |
makefile 오류 - 'linker' input unused [-Werror,-Wunused-command-line-argument] (0) | 2022.12.10 |
컴퓨터네트워크 - 애플케이션 계층 (간단 맛보기) (1) | 2022.12.04 |