读书人

信号障蔽字

发布时间: 2013-07-11 15:38:46 作者: rapoo

信号屏蔽字
在中断信号引起的信号处理函数中对信号屏蔽字进行修改操作,中断返回后为什么没有效果???希望高手指点。。。谢谢 中断???信号屏蔽字
[解决办法]
IRET指令会恢复中断标志位的说。
[解决办法]
看看apue
[解决办法]
可以参考http://learn.akae.cn/media/ch33s04.html

引用:
Quote: 引用:

你要什么效果,有代码吗?

void sig_int(int signo)
{
printf("I am in!\n");

sigset_t s;
sigemptyset(&s);
if(sigprocmask(SIG_SETMASK, &s, NULL) < 0)
perror("sigprocmask");

printf("over\n");
}

int main(void)
{
struct sigaction newact, oldact;

newact.sa_handler = sig_int;
sigemptyset(&newact.sa_mask);
newact.sa_flags = 0;
sigaction(SIGQUIT, &newact, &oldact);
while(1)
{
sigpending(&p);
perror("sigpending");
printsigset(&p);
sleep(1);
}

return 0;
}

在信号处理函数里我想更改信号屏蔽字,来观察对原函数屏蔽字的影响。

我不明白这个信号处理函数与原函数是两个控制流成,为什么进程号和线程号都相同?
各种乱。。。希望老师能够指点迷津。谢谢老师!!

读书人网 >C语言

热点推荐