[已弄懂,未解决]为何这段程序不能被 kill -SIGINT 结束?
发表于 : 2017-07-07 1:19
为何这段程序不能被 kill -SIGINT 结束?
好像调用system时就会出现无法结束
但我直接把SIGINT发送给这个程序而非子进程也不行吗?为什么?
Mon Jul 10 12:35:49 CST 2017补充:
经过2楼的引导,我搜索了glibc的system实现:
https://code.woboq.org/userspace/glibc/ ... c.html#129
尽管没看懂,但感觉意思上system确实会在某些时候忽略信号,然后在某些时候恢复信号.
代码: 全选
#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确实会在某些时候忽略信号,然后在某些时候恢复信号.