Linux 信号signal处理函数--转
函数说明 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,若有信号中断则返回剩余秒数。 (编辑:威海站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |