其他分享
首页 > 其他分享> > C语言 NOTE31

C语言 NOTE31

作者:互联网

系统编程之信号


自定义信号处理方式函数带传参数和不带参数形式:

signal ( 设置信号处理方式 )
 void (*signal(int signum, void(* handler)(int)))(int);

int sigaction(int signum, const struct sigaction *act, struct sigaction *oldact);
struct sigaction
{
	void (*sa_handler) (int);
	sigset_t sa_mask;
	int sa_flags;
	void (*sa_restorer) (void);
}
参数 意义
sa_handler 此参数和 signal()的参数 handler 相同, 代表新的信号处理函数, 其他意义请参考signal().
sa_mask 用来设置在处理该信号时暂时将 sa_mask 指定的信号搁置.
sa_restorer 此参数没有使用.
sa_flags 用来设置信号处理的其他相关操作, 下列的数值可用.OR 运算 组合
A_NOCLDSTOP: 如果参数 signum 为 SIGCHLD, 则当子进程暂停时并不会通知父进程
SA_ONESHOT/SA_RESETHAND: 当调用新的信号处理函数前, 将此信号处理方式改为系统预设的方式.
SA_RESTART: 被信号中断的系统调用会自行重启
SA_NOMASK/SA_NODEFER: 在处理此信号未结束前不理会此信号的再次到来. 如果参数oldact 不是 NULL 指针, 则原来的信号处理方式会由此结构 sigaction 返回.
SA_SIGINFO
weixin_42191545 发布了44 篇原创文章 · 获赞 0 · 访问量 1121 私信 关注

标签:信号处理,C语言,参数,信号,signum,NOTE31,sigaction,sa
来源: https://blog.csdn.net/weixin_42191545/article/details/104180613