终端中按下ctrl+c之后发生了什么

在终端内按下ctrl+c之后,键盘输入产生硬件中断。

如果系统还在执行代码,那么用户空间内代码暂停执行。切换到内核态处理硬件中断。

把ctrl+c解释成为SIGINT信号,记录在进程控制块中(PCB Process Control Block)。

当从内核态返回用户态的时候,处理PCB中的信号,发现SIGINT信号需要处理,这个信号的默认处理动作是终止进程,所以终止进程。

相关阅读:C++ 信号处理 | 菜鸟教程 (runoob.com)


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!