Signal mask: 현재 Process가 블록시키고 있는 signal들의 집합 목록
이렇게 시그널 마스크를 다루기 위한 함수들을 아라보자..
함수 | 기능 |
int sigaddset(sigset_t *set, int signo) | 시그널 set에 특정한 시그널번호를 추가 |
int sigdelset(sigset_t *set, int signo) | 시그널 set에 특정한 시그널번호를 삭제 |
int sigemptyset(sigset_t *set) | 이미 세팅된 시그널 마스크 목록의 모든 시그널을 삭제 |
int sigfillset(sigset_t *set) | 해당 시그널 세트에 모든 시그널을 포함 |
int sigismember(sigset_t *set) | 해당 시그널 세트에 등록된 시그널이 있는지 체크 |
sigismemeber 함수만 성공시 1 실패시 0
나머지는 성공 0 실패 -1 & errno 설정.
또 프로세스 시그널 마스크를 수정&확인하기 위한 핵심 함수를 소개한다.
<sigprocmask!>
Interface |
int sigprocmask(int how, const sigset_t* set, sigset_t* oset) |
Parameter |
how: 시그널 마스크가 수정되는 방식 설정 set: 수정할 시그널 세트 포인터변수 oset: 기존 시그널 마스크의 상태를 저장할 포인터변수 |
Function |
시그널마스크에 시그널 세트를 추가/삭제/수정한다. |
Return |
성공: 0 실패: -1 & errno 설정 |
[how]의 옵션을 아라보자
SIG_BLOCK: 현재 등록된 시그널 마스크에 signal set 추가
SIG_UNBLOCK: 현재 등록된 시그널 마스크에 signal set 삭제
SIG_SETMASK : 블록시킬 시그널들로 signal set 설정.
'LINUX > Linux' 카테고리의 다른 글
Asynchronous I/O 관련 함수 (0) | 2019.06.16 |
---|---|
sigsuspend 함수 (0) | 2019.06.16 |
Signal 생성 함수, 예제 (0) | 2019.06.15 |
Signal 개념 (0) | 2019.06.15 |
pthread 함수 예제2 (0) | 2019.06.15 |