热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

初学者请教关于fork调用的返回值

#include<stdlib.h>#include<stdio.h>#include<unistd.h>intmain(){pid

#include 
#include 
#include 

int main ()

{
   pid_t pid;
  pid = fork();
 if (pid <0)
{
   printf("error\n");
   exit(1);   
}
if (pid ==0)
   printf("child procees\n");
else
   printf (" parent process\n");
   return 0
}






为什么输出会是parent process 
child process
我看一本书上说甚至可能输出是 顺序不确定的.我的问题是 fork的返回值不是确定的吗?那么输出结果该是一个啊

5 个解决方案

#1


fork调用一次,返回2次,一个在父进程返回,一个在子进程返回,应该打印2次。

#2


接楼上,既然是两个进程,由于进程之间的无关性,所以,哪个进程先打印,哪个进程后打印是不能确定的。

#3


引用 1 楼 qq120848369 的回复:
fork调用一次,返回2次,一个在父进程返回,一个在子进程返回,应该打印2次。

谢谢 
http://blog.csdn.net/guichen83/article/details/4160697 看了这里面 NOTE 5 自己对fork以及进程不清楚才会出现疑问

#4


版主说的很到位,赞一个

#5


引用 2 楼 YTerrenceLau 的回复:
接楼上,既然是两个进程,由于进程之间的无关性,所以,哪个进程先打印,哪个进程后打印是不能确定的。

以前看书没看明白,现在这个例子我算是对fork和进程有印象了。以前只概念。

推荐阅读
author-avatar
广东医检验09级08班
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有