yijiu 的博客

自由的风码

按下 Ctrl+C 发生了什么?

按下Ctrl+C发生了什么?

Ctrl+C :中断当前运行的程序。
这个中断由一个称为信号的内核机制产生。
按下 Ctrl+C 后发生的相应事件链:

  • 用户输入Ctrl+C
  • 驱动程序收到字符
  • 匹配 VINTR 和 ISIG 的字符被开启
  • 驱动程序调用信号系统
  • 信号系统发生 SIGINT 到进程
  • 进程收到 SIGINT
  • 进程消亡

中断信号的按键组合不一定非得是 Ctrl+C ,可以使用 stty 将当前的 VINTR 控制字符换成另一种键。

留下你的脚步