社区
C语言
帖子详情
APUE10.19节sleep函数的POSIX.1实现
um_java
2012-04-10 08:49:27
APUE10.19节中有一个遵循POSIX.1的sleep函数的实现,设置了SIGALRM的信号处理程序以后,先阻塞SIGALRM信号,中间通过调用sigsuspend函数等待SIGALRM信号,然后再解除阻塞。
想了好久不知道为什么要先阻塞再解除阻塞,不能直接调用sigsuspend函数吗?
...全文
82
4
打赏
收藏
APUE10.19节sleep函数的POSIX.1实现
APUE10.19节中有一个遵循POSIX.1的sleep函数的实现,设置了SIGALRM的信号处理程序以后,先阻塞SIGALRM信号,中间通过调用sigsuspend函数等待SIGALRM信号,然后再解除阻塞。 想了好久不知道为什么要先阻塞再解除阻塞,不能直接调用sigsuspend函数吗?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
justkk
2012-04-12
打赏
举报
回复
按我的理解,根本上还是担心SIGALRM信号在sigsuspend之前发生
这样的话,这个实现就会阻塞在sigsuspend上了
um_java
2012-04-11
打赏
举报
回复
[Quote=引用 1 楼 的回复:]
参考 为什么sigsuspend要与sigprocmask配合使用?
[/Quote]
快来帮忙回答问题。。靠你了
um_java
2012-04-11
打赏
举报
回复
[Quote=引用 1 楼 的回复:]
参考 为什么sigsuspend要与sigprocmask配合使用?
[/Quote]
你给的链接我看懂了,可是换到sleep函数实现,不阻塞SIGALRM信号好像也不会产生问题啊?
实现代码里:
//
sigprocmask()
alarm(nsec);
//
sigsuspend();
我省略了一些代码,大致格式是这个样子,如果不调用sigprocmask,可以随时产生SIGALRM信号也没什么问题吧。
justkk
2012-04-10
打赏
举报
回复
参考
为什么sigsuspend要与sigprocmask配合使用?
UNIX环境高级编程中文版
10.19
sleep
函数
240 10.20 作业控制信号 241 10.21 其他特征 243 10.21.1 信号名字 243 10.21.2 SVR4信号处理程序的附 加参数 244 10.21.3 4.3+BSD信号处理程序的附 加参数 244 10.22 小结 244 习题 244 第11章 ...
APUE
读书笔记-10信号-19
sleep
函数
转载于:https://blog.51cto.com/quietheart/811797
10.19
sleep
,nano
sleep
以及clock_nano
sleep
函数
我们已经在本书中多次使用了
函数
sleep
,我们也在图10.7以及图10.8中展示了两个有缺陷的
sleep
函数
的
实现
。 #include <unistd.h>unisgned int
sleep
(unsigned int seconds); Returns:0 or number of unslept ...
信号Signals--
APUE
第三版
我们即将描述的就是
POSIX
.1 标准化的reliable-signal routines . 10.2 Signal Concepts 信号概念 首先每个信号都有一个名字。这些名字以SIG开头。 例如: SIGABRT 是abortsignal ,当一个程序调用abort
函数
时生成...
APUE
读书笔记-第十章 信号 (二)
由于信号处理
函数
可能会中断正常执行的指令序列,对于我们自己编写的代码,可以预防这一问题,但对于库
函数
我们就无能为力了,因此10.6
节
给出了一些可重入
函数
,这些可重入
函数
就是可以保证安全调用的
函数
。...
C语言
69,381
社区成员
243,073
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章