sigaction(查询或设置信号处理方式)
相关函数 signal,sigprocmask() ,sigpending,sigsuspend, sigemptyset
阅读(12) | 评论(0) | 转发(0) |
<script>window._bd_share_config={"common":{"bdSnsKey":{},"bdText":"","bdMini":"2","bdMiniList":false,"bdPic":"","bdStyle":"0","bdSize":"16"},"share":{}};with(document)0[(getElementsByTagName('head')[0]||body).appendChild(createElement('script')).src='http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion='+~(-new Date()/36e5)];</script>
相关函数 signal,sigprocmask() ,sigpending,sigsuspend, sigemptyset
表头文件 #include<signal.h>
定义函数 int sigaction(int signum,const struct sigaction *act ,struct sigaction *oldact);
函数说明 sigaction()会依参数signum指定的信号编号来设置该信号的处理函数。参数signum可以指定SIGKILL和SIGSTOP以外的所有信号。
如参数结构sigaction定义如下
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);
-
- while(1)
- {
- for(i=0;i<5;i++)
- {
- write(1,".",1);
- sleep(1);
- }
- write(1, "\n", 1);
- }
-
- sigaction(SIGINT, &oact, NULL); //恢复成原始状态
-
- return 0;
- }
给主人留下些什么吧!~~
评论热议