我想大概是指APUE 10.5的那句话吧:当捕捉到信号时,被中断的是内核中执行的系统调用(而非函数)。我的理解是,内核的系统调用被包装成了C库函数,比如read函数被中断,中断的是系统调用部分而非外壳部分。不是说用户态代码不能被中断。Linux/Unix系统编程手册上说的是,一旦内核接下来要调度进程执行,等待中的(pending)信号就会马上到达,然后处理,所以跟是否系统调用没关系,取决于内核何时分配时间片给进程。