当前时区 GMT+8, 现在时间是 2008-8-30 19:54 游客: 注册 登录 仅登录论坛 | 搜索 帮助


标题: 关于信号(函数sigaction的理解)
clm615
新手上路
Rank: 1



UID 242664
精华 0
积分 4
帖子 7
阅读权限 10
注册 2007-8-4
状态 离线
发表于 2007-8-10 19:52  资料  短消息  加为好友 
关于信号(函数sigaction的理解)

最近在看信号,看到int sigaction(int signo, const struct sigaction  *restrict act,   struct sigaction *restrict oact);这个函数的sigaction这个数据结构的定义的时候,对sigset_t  sa_mask这个变量不是很理解。

struct sigaction {
       void      (*sa_handler)(int);   /* addr of signal handler, or SIG_IGN, or SIG_DFL */
       sigset_t sa_mask;               /* additional signals to block */
       int      sa_flags;              /* signal options, Figure 10.16 */
       /* alternate handler */
       void     (*sa_sigaction)(int, siginfo_t *, void *);
    };

书上说这个变量只有在运行signo这个信号的处理函数时,来阻塞sa_mask信号集合内的信号。但是如果这个信号的集合是空的话(排除自身信号),是不是就可以说:运行signo这个信号的处理函数时,可以来其他信号呢,如果同时来2个信号,而同时这两个信号都不阻塞,会有什么结果阿?

[ 本帖最后由 clm615 于 2007-8-10 19:59 编辑 ]

顶部
zhaojt
注册会员
Rank: 2


UID 47591
精华 1
积分 397
帖子 304
阅读权限 20
注册 2003-7-1
来自 武汉市
状态 离线
发表于 2007-8-10 21:45  资料  短消息  加为好友 
我读beginning linux  program 3rd这本书时,对函数的行为方式有很多的疑问,我通过修改书的例子,来检验我的想法。并把这个过程详细的记录下来,方便以后查阅。我把信号这一章的贴出来。希望对你有帮助。由于看的是3rd是英文版的,所以书中的相关描述部分我保留为英文,但是其它的说明,想法及实现的过程用中文描述。

附件中的文档格式是rar的。解压后阅读。



 附件: 您所在的用户组无法下载或查看附件




----------------------------
醉醉醒醒
忽然有一种默默的赎罪
一路痴迷 我一路追
顶部
clm615
新手上路
Rank: 1



UID 242664
精华 0
积分 4
帖子 7
阅读权限 10
注册 2007-8-4
状态 离线
发表于 2007-8-11 09:12  资料  短消息  加为好友 
非常感谢zhaojt 分享阅读笔记,一定好好拜读

顶部
clm615
新手上路
Rank: 1



UID 242664
精华 0
积分 4
帖子 7
阅读权限 10
注册 2007-8-4
状态 离线
发表于 2007-8-11 10:09  资料  短消息  加为好友 
zhaojt 的资料非常好,经过调试发现,如果sa_mask信号集合是空的话,在运行signo这个信号的处理函数时,来其他的信号还是会捕捉并处理。

顶部
 


Powered by Discuz! 5.5.0  © 2001-2007 Comsenz Inc.
清除 Cookies - 联系我们 - 中国Linux公社 - WAP