用父进程创建两个子进程

#include<stdio.h>#include<unistd.h>main(){inti;intpid1,pid2;//for(i=0;i<10;i++){if(pi... #include<stdio.h>
#include<unistd.h>
main()
{
int i;
int pid1,pid2;
//for(i=0;i<10;i++){

if(pid1=fork()==-1)
{
printf("Create Process fail!\n");
//exit(EXIT_FAILURE);
}
if(pid1==0)
{printf("Child1:my pid is%d\n",getpid());
//exit(1);
//break;
}
else
{
if(pid2=fork()==-1);
printf("Create Process fail!\n");
//exit(EXIT_FAILURE);

if(pid2==0)
printf("Child2:my id is%d\n",getpid());
//sleep(5);

else//执行父进程代码

printf("Parent:my id is%d\n",getpid());

}
//return;
}
以上是程序,这是在Linux系统下的编程,输出的结果是
Child1:my id is 7074
Child1:my id is 7073
我想要的结果是
Child1:my id is ****
child2:my id is ****
parent:my id is ****
为什么会出现上面的情况?还有怎么改才能得到预期的结果啊?谢谢!!
展开
 我来答
kwydwuf
2010-04-16 · TA获得超过7409个赞
知道大有可为答主
回答量:1527
采纳率:71%
帮助的人:1981万
展开全部
if(pid1=fork()==-1)
要改成
if((pid1=fork())==-1)

==的优先级高于=

同理
if(pid2=fork()==-1);
要改成
if((pid2=fork())==-1)
另外注意这个if后面的分号一定要去掉
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式