2012. 7. 13. 16:26
시그널과 관련된 함수 중 많은 함수는 시그널 각각을 인수로 하지 않고 시그널 집합을 인수로 하는데 이는
시그널 각각을 인수로 하면 동일한 작업을 수십번 반복해야 하는 불편함이 있기 때문이다.
시그널 집합(Signal set)은 말 그대로 시그널을 원소로 하는 집합을 의미한다.
시그널 집합의 데이터형은 sigset_t이다
각 프로세스는 시그널과 관련해서 크게 다음의 세가지 일을 한다.
1. 시스템에서 기본적으로 설정한 동작을 한다.
시그널을 무시한다. 단, sigkill과 sigstop 시그널은 무시할 수 없다.
특정 루틴(함수)를 실행한다.
2. 시그널이 도착했을 때 시그널을 블록화 한다. 중요한 부분을 실행하고 있을 때 시그널이 도착하면 이를 블
록화해 뒤로 미룰 수 가 있는데 블록을 해제하면 블록화 되었던 시그널이 전달된다.
3. 프로세스에 시그널을 보낸다. kill,raise와 같은 함수를 이용하여 다른 또는 자기 자신의 프로세스에
시그널을 보낼 수 있다.
void (*signal(int signum, void (*sighandler)(int)))(int);
int sigaction(int signum, const struct sigaction *act, struct sigaction *oldact);
'EMBEDDED > SYSTEM Proc' 카테고리의 다른 글
[Signal] sigpipe()관련 예제 (0) | 2012.07.13 |
---|---|
[Signal] sigemptyset(), sigaddset(), sigismember() 관련 예제 (0) | 2012.07.13 |
[Process] system() 함수에 관한 예제 (0) | 2012.07.13 |
[Process] 간단한 쉘 프로그램 (1) | 2012.07.13 |
[Process] exec계열 함수에 관한 예제2 (1) | 2012.07.13 |