X

曜彤.手记

随记,关于互联网技术、产品与创业

  1. 第 10 章 - 信号

《Unix 环境高级编程(第三版)》读书笔记(第 6-10 章)

继续整理书架上的经典老书。相关代码和注释可以参考这里

第 10 章 - 信号

  1. 信号:一种软中断,提供了一种处理异步事件的方法。
  • exec 函数将所有之前要捕捉的信号更改为默认动作(父进程中被标记为忽略的信号设置会被保留);
  • fork 函数使得子进程继承父进程的信号处理方式;
  • 可能产生的方式:
    • 硬件中断,如:键盘按键输入;
    • 硬件异常,如:除 0、无效内存引用;
    • kill 系统调用发送的信号;
    • 软件条件引发的信号,如 SIGURG、SIGPIPE、SIGALRM 等。
  • 不存在编号为 0 的信号。
  • 信号的三种处理方式:
    • 忽略信号(SIGKILL 与 SIGSTOP 无法被忽略);
    • 捕捉信号;
    • 执行系统默认动作。
  • ISO C 定义的接口:
    • 由于 ISO C 不涉及多进程、进程组以及中断 I/O 等,因此它对信号的定义十分模糊;
    • 该函数可能保留有旧的 System V 不可靠信号语义,因此仅供向后兼容
// #include <signal.h>
void (*signal(int sig, void (*func)(int)))(int);



评论 | Comments


Loading ...