使用linux编写C语言程序,如何才能得到进程信息和父进程信息?

 我来答
始永修盍雨
2020-05-22 · TA获得超过3.6万个赞
知道大有可为答主
回答量:1.4万
采纳率:30%
帮助的人:841万
展开全部
我觉得这个问题你应该从另外一个方向去考虑,既然b不需要a的资源,那么就不要在fork之前棚神打开这些资源。
你如,你原来的代码是
fd
=
open(...);
...
...
fork();
...
...
你现在就应该改成
fork();
if
(parent)
{
......
fd
=
open();
.....
}
else
{
....
}
如果你是要在a进程打开资源,运行了一些东西,链缓亏得到了足够的信息才需要调用其他啊程序来做下一步内容,如果按照上面的方法就无法实现了话,你面对的实哪亏际是进程间同步和通信的问题。
解决方法也很简单,随便通过一种通信机制(signal,pipe,等等),等a进程获得足够信息后,再通知b进程执行。比如
a:
fork();
/*
below
code
are
running
in
parent,
a
*/
...
...
fd
=
open();
...
...
notify(b);
/*
use
kill,
send,
etc.
to
notify
child
task
b)
....
b:
wait();
/*
for
example,
while(1)
sleep();
*/
execlp(xxx);
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式