APUE读书笔记(17) 信号(下)

一:函数sigprocmask
  一个进程的信号屏蔽字规定了当前阻塞而不能递送给该进程的信号集。调用函数 sigprocmask可以检测或更改 (或两者 ) 进程的信号屏蔽字。原型如下:
在这里插入图片描述
  首先,如果oset是一个非空的指针,那么进程的当前信号屏蔽字通过oset返回。
  其次,若set是一个非空指针,则参数how指示如何修改当前信号屏蔽字。SIG_BLOCK是或操作,而SIG_SETMASK则是赋值操作。
在这里插入图片描述
二:函数sigpending
  SIGPENDING返回对于调用进程被阻塞不能递送和当前未决的信号集。该信号集通过set参数返回。
在这里插入图片描述
三:函数sigaction
  sigaction函数的功能是检查或修改(或者检查和修改)与指定信号相关联的处理动作。此函数取代了UNIX早期版本使用的signal函数。在本书末尾用 sigaction函数实现了signal。
在这里插入图片描述
  其中,参数signo是要检测或修改其具体动作的信号编号。若act指针非空,则要修改其动作。如果oact指针非空,则系统返回该信号的原先动作。此函数使用下列结构:
在这里插入图片描述
四:函数abort
  abort函数的功能是使程序异常终止。
在这里插入图片描述
  该函数将SIGABRT信号发送给调用进程,需要注意,进程不应该忽略此信号。
五:作业控制信号
  下面六个信号是和作业控制相关的信号。
  • SIGCHLD子进程已停止或终止。
  • SIGCONT如果进程已停止,则使其继续运行。
  • SIGSTOP停止信号(不能被捕捉或忽略)。
  • SIGTSTP交互停止信号。
  • SIGTTIN后台进程组的成员读控制终端。
  • SIGTTOU后台进程组的成员写控制终端。
在这里插入图片描述
  大多数应用程序并不处理这些信号——交互式 s h e l l通 常 做 处 理 这 些 信 号 的 所 有 工 作 。 当 键 入 挂 起 字 符 ( 通 常 是 C t r l - Z )时, S I G T S T P 被 送 至 后 台 进 程 组 的 所 有 进 程 。 当 通 知 s h e l l在前台 或后台恢复一个作业时, s h e l l 向作业中的所有进程发送 S I G C O N T 信 号 。 与 之 类 似 的 有 , 如 果 向一个进程递送了 S I G T T I N或 S I G T TO U信号,则根据系统默认,此进程停止,作业控制 s h e l l 了解到这一点后就通知我们。
  一个例外是管理终端的进程——例如,vi(1)编辑程序。当用户要挂起它时,它需要能了解到这一点,这样就能将终端状态恢复到vi起动时的情况。另外,当在前台恢复它时,它需要将终端状态设置回所希望的状态,并需要重新绘制终端屏幕。可以在下面的例子中观察到类似 v i 这样的程序是如何处理这种情况的。
  在作业控制信号间有某种相互作用。当对一个进程产生四种停止信号(SIGTSTP,SIGSTOP,SIGTTIN或SIGTTOU)中的任意一种时,对该进程的任一未决的SIGCONT信号就被丢弃。与之类似的是,当对一个进程产生SIGCONT信号时,对同一进程的任一未决的停止信号被丢弃。
  注意,如果进程是停止的,SIGCONT的默认动作是继续一个进程,否则忽略此信号。 通 常,对该信号无需做任何事情。当对一个停止的进程产生一个SIGCONT信号时,该进程就继续,即使该信号是被阻塞或忽略的也是如此。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!
提供的源码资源涵盖了小程序应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值