我正在阅读有关中断和信号的内容,并且无法理解以下场景。
假设 shell 执行一些命令,然后 shell 进程执行fork()
+wait()
命令,而子进程正在execv()
使用要运行的新代码地址执行命令。
现在,假设我Ctrl C在 shell 内部按下,然后我假设来自键盘的中断将到达子进程,并且将调用相关的中断处理程序。
现在,我的问题是如何理解信号如何SIGINT
发送到子进程(我在某处读到它是从父进程(即 shell 进程)发送的)以及 shell 如何再次运行(谁在唤醒他?)。
另一个问题是,我读到,如果任务进程描述符中未声明某些信号处理程序,那么它会在父进程中搜索信号处理程序,这是真的吗?