리눅스 Ctrl+c 및 종료 시그널 처리
인터럽트 종료 시그널 처리
Linux application에서 인터럽트 종료 시그널 처리 예는 아래와 같다.
#include <sys/signal.h>
void sigint_handler( int signo)
{
//
}
int main(int argc, char *argv[])
{
signal(SIGINT, sigint_handler);
signal(SIGTERM, sigint_handler);
...
return 0;
}
1. signal 함수를 통해 시그널 핸들러 함수를 등록한다.
2. 인터럽트가 발생하면 핸들러 함수가 호출된다.
3. 핸들러 함수에서 해당 인터럽트를 처리한다.
기타 종료 시그널
닫혀 있는 소켓에 데이터를 쓰면,SIGPIPE 시그널이 발생해 application이 종료된다.
이때 application이 종료되지 않도록 하려면 아래와 같은 코드를 추가하면 된다.
signal(SIGPIPE, SIG_IGN);
댓글
댓글 쓰기