리눅스를 하다보면 오류처리를 해야할 일이 아주 많다
리눅스 오류처리 할때 구분해야할것이 있다
1. errno 에 셋팅 되느냐
2. errno 에 셋팅이 안되느냐
1번상황 errno에 셋팅이 되면 에러노 처리를 하자
리눅스에서는 거의 모든 함수가 오류 일때 errno일때 셋된다
간단하게
perror는 입력한 값을 그대로 출력
perror 함수 원형
#include <stdio.h>
void perror(const char *s);
이때 매개 변수 s 에는 오류 메시지 앞에 덧붙이고 싶은 문자열을 전달하면 된다.
myperror.c 오류 메시지 출력 예 open: No such file or directory 이렇게 해당 오류내용을 보여준다
2번상황
errno 셋팅이 안될때
주로 argc 판별할때 쓴다
리눅스 오류처리 할때 구분해야할것이 있다
1. errno 에 셋팅 되느냐
2. errno 에 셋팅이 안되느냐
1번상황 errno에 셋팅이 되면 에러노 처리를 하자
리눅스에서는 거의 모든 함수가 오류 일때 errno일때 셋된다
간단하게
void DieWithSystemMessage(const char *msg)
{
perror(msg);
exit(1);
}
위의 두가지를 분류해서 함수로 만들어서 사용하기 편리하다
ex) DieWithSystemMessage("bind() failed");
ex) DieWithSystemMessage("bind() failed");
perror 함수 원형
#include <stdio.h>
void perror(const char *s);
이때 매개 변수 s 에는 오류 메시지 앞에 덧붙이고 싶은 문자열을 전달하면 된다.
myperror.c 오류 메시지 출력 예 open: No such file or directory 이렇게 해당 오류내용을 보여준다
2번상황
errno 셋팅이 안될때
주로 argc 판별할때 쓴다
void DieWithUserMessage(const char *msg, const char *detail)
{
fputs(msg, stderr);
fputs(": ", stderr);
fputs(detail, stderr);
fputc('\n', stderr);
exit(1);
}
ex) if ( argc !=2)
DieWithUserMessage("Usage : is directory_name")
DieWithUserMessage("Usage : is directory_name")
'linux > linux tips' 카테고리의 다른 글
구조체에 대한 이해 (0) | 2012.01.09 |
---|---|
리눅스 함수에 대한 이해 (0) | 2012.01.09 |
우분투 11.10 에서 vnc 하기 (1) | 2011.10.30 |
우분투 live 부팅 이란 (0) | 2011.10.30 |
./configure 와 make 의 이해 (0) | 2011.10.30 |