linux编程中 怎样将子进程变量值传给父进程?

比如inti=0,j=0;while((x=fork())==-1);if(x==0){i=10;}else{j=10;printf("j=%d\n",j);printf... 比如
int i=0, j=0;
while((x=fork())==-1);
if(x==0)
{
i=10;
}else
{
j=10;
printf("j=%d\n",j);
printf(" ____", _____ );
}
直接打i,值是0,
怎样在第二个printf语句中将i=10的值打出来
i的值怎么传递给父进程?
展开
 我来答
3023050
2009-12-02
知道答主
回答量:23
采纳率:0%
帮助的人:15.2万
展开全部
使用管道,或者开辟共享内存区。vfork最好别用,他直接改变父进程的数据段,这样如果子进程和父进程操作不一样,父进程就出错了。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友5558801
2009-11-24 · 超过13用户采纳过TA的回答
知道答主
回答量:45
采纳率:0%
帮助的人:22.3万
展开全部
那就用vfork()吧,因为用fork()时子进程改变了i值,此时代码段就会不一样,没办法传过去,除非用其他的通信机制,用vfork()可以。
#include <stdio.h>
#include <unistd.h>
int i=0;
main(int args, char *argv[])
{
int j=0;
int x;
while((x=fork())==-1);
if(x==0)
{
i=10;
}else
{
j=10;
printf("j=%d\n",j);

printf("i=%d\n", i);
}

exit(0);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xiangbing911
2009-11-24 · 超过18用户采纳过TA的回答
知道答主
回答量:73
采纳率:0%
帮助的人:60.4万
展开全部
fork()是子进程复制父进程的相关信息,而vfork()是父子进程共享代码段和数据段。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式