반응형
신호
- 신호는 유닉스와 리눅스 시스템이 어떤 조건에 따라 발생시키는 사건(event)이다. 시스템이 특정 시건에 반응해서 특정 프로세스에 신호를 보내면, 신호를 받은 프로세스는 그에 맞는 행동을 취하게 된다.
- 신호가 발생하는 것은 일으킨다(raise)라고 칭하며, 프로세스가 신호를 감지해서 반응하는 것은 잡는다(catch)라고 한다.
프로그램 안에서 실호를 처리할 때는 signal 라이브러리 함수를 사용
#include <signal.h>
vodi (*signal(int sig, void(*func)(int)))(int);
예제 소스
실행 결과
처음 ctrl+c에 의해 SIGINT가 발생 하면서 ouch가 호출된다.
메시지가 출력된 후 다시 제어권을 main으로 반환한다.
두번째 ctrl+c 가 눌러지면 기본 행동이 일어난다.
- signal 인터페이스를 이용하여 신호를 잡는 방식은 신뢰성이 떨어진다. sigaction인터페이스를 사용하는 것이 더깔끔하다.
반응형
'개발 > Linux' 카테고리의 다른 글
프로세스와 신호 - 안정적인 신호 인터페이스 (0) | 2014.11.07 |
---|---|
프로세스와 신호 - 신호 보내기 (0) | 2014.11.07 |
프로세스와 신호 - 입출력 재지정 (0) | 2014.11.07 |
프로세스와 신호 - 좀비 프로세스 (0) | 2014.11.07 |
프로세스와 신호 - 프로세스 종료 기다리기 (0) | 2014.11.07 |