首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

SIGRTMIN-SIGRTMAX的信号,是OS产生的,还是用户程序产生的?解决方案

2012-04-05 
SIGRTMIN-SIGRTMAX的信号,是OS产生的,还是用户程序产生的?例如,我在用户程序里面去发送一个SIGRTMIN+2给另

SIGRTMIN-SIGRTMAX的信号,是OS产生的,还是用户程序产生的?
例如,我在用户程序里面去发送一个SIGRTMIN+2给另一个进程。

我想知道,系统事件发生的时候,是不是只会产生1-31这31个信号,其他信号的值是留给编程的人用的?

[解决办法]
编程也可以使用SIGINT/SIGQUIT 这些信号的
[解决办法]
这个不矛盾
sigprocmask(SIG_SETMASK,&mask,NULL);
... ...
sigprocmask(SIG_UNBLOCK,&mask,NULL);
这是为了保护这之间的代码,保证在此期间不会产生SIGRTMIN信号。

sigaction 只是定义了一个信号处理动作,表示信号发生时执行对应的函数
但是它不能指定这个信号何时发生,有可能这个信号就发生在你不想被打断的临界区内..
所以sigprocmask就是干这个用的

热点排行