首页 > 学院 > 开发设计 > 正文

Linux--信号处理:在某个信号发生时屏蔽其他的信号

2019-11-06 06:15:53
字体:
来源:转载
供稿:网友

在下面代码中,在SIGINT信号处理过程中,屏蔽SIGQUIT信号的发生,信号SIGQUIT直到SIGINT的信号处理函数完毕后才能被处理

#include <stdio.h>#include <unistd.h>#include <stdlib.h>#include <string.h>#include <signal.h>void sig_handle(int signo){	int i = 5;	PRintf("catch signal %d/n", (int)signo);	while(i--)	{		printf("wait another signal/n");		sleep(1);	}}int main(int argc, char *argv[]){	struct sigaction newact, oldact;		newact.sa_handler = sig_handle;	sigemptyset(&newact.sa_mask);	sigaddset(&newact.sa_mask, SIGQUIT);	newact.sa_flags = 0;		sigaction(SIGINT, &newact, &oldact);		while(1)	{		printf("main process/n");		sleep(1);	}		return 0;}


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表