当前位置:  技术问答>linux和unix

APUE上的例子

    来源: 互联网  发布时间:2016-06-23

    本文导语:      今天看到信号那章,里面讲到:当程序捕捉到一个信号并进入信号处理函数时会设置此信号的阻塞位,并且用10-14例程演示,可是我在我的fedora上演示的结果是不会设置其阻塞位。我的内核是2.6.23,很奇怪啊,...

    今天看到信号那章,里面讲到:当程序捕捉到一个信号并进入信号处理函数时会设置此信号的阻塞位,并且用10-14例程演示,可是我在我的fedora上演示的结果是不会设置其阻塞位。我的内核是2.6.23,很奇怪啊,书上似乎说任何平台都会设置的,可是我的机子上并未设置。我还特意写了个例子测试,仍然不会设置。
     还有,就是例子10-16.该例子演示sigsuspend函数在控制全局变量的一个作用。main中有个循环,会测试一个全局变量,如果程序捕捉到SIGINT信号则显示捕捉到的信息但不设置全局变量,如果程序捕捉到SIGQUIT信号,则会设置全局变量,从而导致整个程序结束。我上机测试的结果是我连续输入两个ctrl+c也就是产生SIGINT信号就会导致程序结束,可是我并未产生SIGQUIT信号啊,非常奇怪啊。

|
早期unix信号的问题
1. 信号可能会丢失:信号发生了进程却不知道
2. 信号控制力弱:比如有时用户希望通知内核阻塞信号(不要忽略该信号,而是在其发生时记住它,然后在进程作好了准备时再恢复之)这种阻塞信号的能力当时并不具备。
3. 信号被抓获的时候,信号处理程序会被重置为DFL。
4. 慢性系统调用被中断时,必须手工重启之。下面的代码便是个例子:
again:
    if ( (n = read(fd, buff, BUFFSIZE)) 

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 下载了APUE源码,怎么打不开啊?
  • 文件名为“apue.tar.Z”的文件在UNIX下怎么打开?大家帮帮忙
  • APUE第2版的例2-1的疑问
  • apue书上的概念,读过这本书的请进
  • 刚学完apue,大家给个建议
  • 求apue的课后答案~~~~~~~~~~~~~
  • APUE 看完之后,拿什么练练手?
  • apue.h的问题
  • APUE+macro
  • apue中的一个问题
  • APUE相关章节不容易理解。
  • apue书的的信号函数,看不懂
  • APUE中 system函数的实现中的问题
  • 哪位兄弟在看apue?相互交流一下
  • APUE中“信号”一节的问题
  • apue 上的 Figure3.10运行后,输出怎么是空白
  • apue学习问题 第八章 进程控制 相关
  • apue page113
  • 关于unix环境高级编程的apue的问题
  • 不同缓冲区长度读操作 APUE2e


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3