加入收藏 | 设为首页 | 会员中心 | 我要投稿 温州站长网 (https://www.0577zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

Linux 信号signal处理函数--转

发布时间:2021-01-27 05:05:33 所属栏目:Linux 来源:网络整理
导读:副标题#e# alarm(设置信号传送闹钟)相关函数 signal,sleep 范例 #include void handler() {printf("hello/n");}main(){int i;signal(SIGALRM,handler);alarm(5);for(i=1;i kill(传送信号给指定的进程)相关函数 raise,signal 表头文件 #include #inclu

函数说明 signal()会依参数signum 指定的信号编号来设置该信号的处理函数。当指定的信号到达时就会跳转到参数handler指定的函数执行。如果参数handler不是函数指针,则必须是下列两个常数之一:SIG_IGN 忽略参数signum指定的信号。SIG_DFL 将参数signum 指定的信号重设为核心预设的信号处理方式。关于信号的编号和说明,请参考附录D

返回值返回先前的信号处理函数指针,如果有错误则返回SIG_ERR(-1)。

附加说明在信号发生跳转到自定的handler处理函数执行后,系统会自动将此处理函数换回原来系统预设的处理方式,如果要改变此操作请改用sigaction()。

范例 参考alarm()或raise()。

 

sigpending(查询被搁置的信号)相关函数 signal,sigaction,sigprocmask,sigsuspend

表头文件 #include

定义函数 int sigpending(sigset_t *set);

函数说明 sigpending()会将被搁置的信号集合由参数set指针返回。

返回值执 行成功则返回0,如果有错误则返回-1。

错误代码 EFAULT 参数set指针地址无法存取EINTR 此调用被中断。

 

sigprocmask(查询或设置信号遮罩)相关函数 signal,sigaction,sigpending,sigsuspend

表头文件 #include

定义函数 int sigprocmask(int how,const sigset_t *set,sigset_t * oldset);

函数说明 sigprocmask()可以用来改变目前的信号遮罩,其操作依参数how来决定SIG_BLOCK 新的信号遮罩由目前的信号遮罩和参数set 指定的信号遮罩作联集SIG_UNBLOCK 将目前的信号遮罩删除掉参数set指定的信号遮罩SIG_SETMASK 将目前的信号遮罩设成参数set指定的信号遮罩。如果参数oldset不是NULL指针,那么目前的信号遮罩会由此指针返回。

返回值 执行成功则返回0,如果有错误则返回-1。

错误代码 EFAULT 参数set,oldset指针地址无法存取。EINTR 此调用被中断

 

sleep(让进程暂停执行一段时间)相关函数 signal,alarm

表头文件 #include

定义函数 unsigned int sleep(unsigned int seconds);

函数说明 sleep()会令目前的进程暂停,直到达到参数seconds 所指定的时间,或是被信号所中断。

返回值 若进程暂停到参数seconds 所指定的时间则返回0,若有信号中断则返回剩余秒数。

(编辑:温州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读