LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 790|回复: 3

关于建立2个进程的问题~~~~~~

[复制链接]
发表于 2008-8-12 11:54:12 | 显示全部楼层 |阅读模式
呵呵,又来打扰了。。。
我看一本书上,父进程建立2个子进程,它是这么写的:
int main()
{
pid_t p=fork();
pid_t q=fork();
switch (p){.......}
switch (q){.......}
}
我觉得这么写有问题,我理解的是q建立的进程不但在父进程main里面建立了一次,还在p建立的进程里面又建立了一次。这么看来就应该有4个进程空间,main,main中的p,main中的q,p中的q。
所以我觉得如果想在一个父进程中建立2个同等地位的子进程,应该这么写:
int main()
{
pid_t p=fork();
if (p>0)
{
    pid_t q=fork();
    switch (q){.......}
}
}
这样p,q2个进程的父进程都是main,地位相同。
不知道我这么理解对不对???
发表于 2008-8-12 17:46:54 | 显示全部楼层
我觉得你没错
回复 支持 反对

使用道具 举报

发表于 2008-8-14 01:03:32 | 显示全部楼层
你理解的很对!可以经实验证明,让程序等待,然后ps进程,会发现有四个同名程序!
回复 支持 反对

使用道具 举报

发表于 2008-8-14 10:12:15 | 显示全部楼层
按照第一种写法 就会有4个进程了
回复 支持 反对

使用道具 举报

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

本版积分规则

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