sigaction是一個函式,可以用來查詢或設定信號處理方式。
基本介紹
- 中文名:sigaction
- 相關函式:signal,sigprocmask()
- 表頭檔案:#include
- 採用:void
內容簡介
struct sigaction {
void (*sa_handler)(int);
void (*sa_sigaction)(int, siginfo_t *, void *);
sigset_t sa_mask;
int sa_flags;
void (*sa_restorer)(void);
};
示例
#include <signal.h>
#include <unistd.h>
#include <stdio.h>
static void int_hander(int s)
{
printf("Catch a signal sigint\n");
}
int
main(void)
{
int i;
struct sigaction act, oact;
act. sa_handler = int_hander;
sigemptyset(&act. sa_mask); //清空此信號集
act. sa_flags = 0;
sigaction(SIGINT, &act, &oact);
//signal(SIGINT, SIG_IGN);
while(1){
for(i=0; i<5; i++){
write(1, ".", 1);
sleep(1);
}
write(1, "\n", 1);
}
sigaction(SIGINT, &oact, NULL); //恢復成原始狀態
return 0;
}