你如,你原来的代码是
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)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)