QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 664|回复: 6

三个还是四个啊?

[复制链接]
发表于 2004-4-16 22:58:07 | 显示全部楼层 |阅读模式
[code]
    ....
     i=forK();
             j=fork();
.......
...................
[code]
这是创建了三个还是四个进程啊.
发表于 2004-4-17 00:12:26 | 显示全部楼层
创建了两个子进程,算上父进程,一共三个
回复

使用道具 举报

发表于 2004-4-17 00:19:58 | 显示全部楼层
不至于吧~
我猜也许是这样:
执行i=forK(); 后,就有了两个进程,每个进程里都在运行同样的代码,当时都是开始运行i=forK(); 下面的一句: j=fork(); ,这样不就是两个进程里都在执行fork()了吗?那样不就应该是4个进程了吗?
回复

使用道具 举报

发表于 2004-4-17 11:22:48 | 显示全部楼层
哈,脑筋急转弯题!
不过楼主省去了一些不该省去的一些代码。
回复

使用道具 举报

发表于 2004-4-17 15:49:55 | 显示全部楼层
fork()到底是如何确定哪个是父进程?
回复

使用道具 举报

发表于 2004-4-17 17:34:52 | 显示全部楼层
You will get 4 processes normally;
but please check the return value( i and j) of fork(),
if i<0 or j<0,haha....

About fork():

pid_t fork(void);

On success, the PID of the child process is returned in the parent's thread of execution, and a 0 is returned in the child's thread of execution. On failure, a -1 will be returned in the parent's context, no child process will be created, and errno will be set appropriately.
回复

使用道具 举报

发表于 2004-4-21 01:31:07 | 显示全部楼层

试试不就知道了么

在各子进程中打印它们自己的pid。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-8 13:38 , Processed in 0.075884 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表