免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1585 | 回复: 6
打印 上一主题 下一主题

不同的进程必须要用子进程实现吗? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-01-17 18:10 |只看该作者 |倒序浏览
有一个比较菜的问题。
我有一个主进程,需要实现对别的进程的启动或终止。
我直接在主进程里面调用system函数,启动别的.o文件。后者是一个死循环,不断的屏幕输出。
但是发现在该system语句后的语句无法运行。

是不是必须要用fork+exec实现?
概念上有点不清楚,希望得到解答,谢谢了。

论坛徽章:
0
2 [报告]
发表于 2006-01-17 18:16 |只看该作者
system要等待子进程结束的。
fork+exec是正确方法。

论坛徽章:
0
3 [报告]
发表于 2006-01-17 18:19 |只看该作者
谢谢你给我指了条路  脑子有点混乱

论坛徽章:
0
4 [报告]
发表于 2006-01-17 18:24 |只看该作者
不断的生成子进程是linux的一大特点

论坛徽章:
0
5 [报告]
发表于 2006-01-17 18:27 |只看该作者
后来还有一个朋友教了一个简单的方法
就是在system调用的可知性文件后加一个&
就可以往下运行

试了一下,可行

论坛徽章:
0
6 [报告]
发表于 2006-01-17 18:36 |只看该作者
system的一个小缺点在于要产生一个多余的sh进程,它实际是使用了类似下面的命令行: sh newcommand,LZ可以在执行了system后,用ps查看一下,就会看到多余的sh进程。
用folk+exec就不会这样了,在多个用户使用同一应用的环境下,可以看出来,用system会产生许多多余的sh进程,浪费了系统资源。所以还是使用folk+exec好啊。

论坛徽章:
0
7 [报告]
发表于 2006-01-17 19:24 |只看该作者
试过了 终于搞明白了 谢谢大家了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP