system调用shell命令时的一个疑问

honty 2012-06-27 10:39:19
我用system调用shell脚本b.sh

在执行a.out时,执行ctrl+c,a.out和子进程b.sh都退出了

而在system函数说明中有以下说明,

在调用system()期间SIGCHLD 信号会被暂时搁置,SIGINT和SIGQUIT 信号则会被忽略。

上面说被忽略,是怎么个意思?
...全文
122 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
louyong0571 2012-06-27
  • 打赏
  • 举报
回复
http://blog.chinaunix.net/uid-25940216-id-3207074.html
楼主看看这个
honty 2012-06-27
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

SIGINT和SIGQUIT 信号则会被忽略就是对这两个信号不会响应了。建议你去看看一本书《UNIX 高级环境编程》
[/Quote]

谢谢你的回复,
ctrl+C就是SIGINT信号吧,为什么在执行system的时候,进行ctrl+c还是会杀死父子进程?
bestpool 2012-06-27
  • 打赏
  • 举报
回复
SIGINT和SIGQUIT 信号则会被忽略就是对这两个信号不会响应了。建议你去看看一本书《UNIX 高级环境编程》
honty 2012-06-27
  • 打赏
  • 举报
回复
明白了,谢谢大家的回复

我在a.out和a.sh中都加上捕获SIGINT中断的代码,在未执行到system的时候,可以在a.out中捕获到SIGINT
在执行system的时候,在a.out中捕获不到SIGINT,在a.sh中可以捕获到SIGINT

也就是在执行system的时候,父进程中的SIGINT被忽略了

23,217

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧