代码: 全选
#include<stdio.h>
#include<signal.h>
#include<assert.h>
int main(int argc,char *argv[])
{
for(;;)system("date;sleep 1");
}
但我直接把SIGINT发送给这个程序而非子进程也不行吗?为什么?
Mon Jul 10 12:35:49 CST 2017补充:
经过2楼的引导,我搜索了glibc的system实现:
https://code.woboq.org/userspace/glibc/ ... c.html#129
尽管没看懂,但感觉意思上system确实会在某些时候忽略信号,然后在某些时候恢复信号.