QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 841|回复: 4

我想在我编的程序中 调用和关闭另外一个程序.怎样实现?

[复制链接]
发表于 2004-2-19 12:34:11 | 显示全部楼层 |阅读模式
我用popen来运行令外的程序2,这是可以的.
但当我想把那个程序2关闭,我用pclose,
发现,有时可以,有时不行.

我想问一下除了为什么pclose有时候没效果,

除了popen,pclose外
有没有其他可以用来控制其他程序的方法

谢谢
发表于 2004-2-19 13:44:25 | 显示全部楼层
发信号
回复

使用道具 举报

 楼主| 发表于 2004-2-19 14:12:46 | 显示全部楼层
怎样发啊?

kill?

但我用popen时,他没有返回新程序的pid,
如果通过命令ps的话,如果当时有多个相同的进程时,会得到多个pid的,我又不好知道是哪个进程id.
回复

使用道具 举报

发表于 2004-2-20 10:07:07 | 显示全部楼层
在test里加入printf("current pid is%d\n",getpid());

FILE *cmd;
cmd=popen("test","r")
从cmd里读出pid
回复

使用道具 举报

 楼主| 发表于 2004-2-21 12:29:52 | 显示全部楼层
哈哈,我搞好了

我先fork子进程,
然后用execl来用执行程序2
这时程序2运行的pid就是子进程的pid

父进程在适当的时候就把kill 那个pid
这个程序2就被杀死了.

这时那个进程没有完全被杀,而是defunct
父进程要waitpid 一下来"收尸"

这样就结束了,用不着改另外的程序
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-8 23:53 , Processed in 0.049359 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表