请教linux下fork()创建子进程

代码如下:
pid = fork(); if(pid < 0){...} else if(0 == pid){...} else{....}
1,代码编译执行后,在fork()处创建子进程,书上说子进程与父进程完全一样,那岂不是说子进程也会执行fork()创建一个子子进程???
2,这样就无限循环了,显然不可能,但是,怎么理解子进程与父进程完全一样,pid是在fork处返回的,然后子进程和父进程的关系怎么理解?
熟悉的朋友麻烦帮帮我,多谢多谢!!!
貌似理解了,pid1 = fork(); pid2 = fork(); printf("hello\n");
打印了四次,说明创建了四个进程,第一次调用fork()后创建的子进程是从这里向下执行的,第二个fork()就有了两个进程调用,所以一共有四个进程在执行printf
理解的如果不对麻烦指正,多谢!

pid = fork(); //创建进程命令点
if(pid < 0){...} //pid<0,表示fork出错,程序一般会退出,不会出现pid=0和pid>0的情况

else if(0 == pid){...} //从这个点开始,程序出现分支 pid=0表示fork出来的子进程分支
else{....} //否则是原进程,即父进程

printf("here!"); //如果在上面两个进程都没有exit()操作时,执行完{}中的命令,都会走到这里

关于fork出来的父子进程关系,请仔细阅读linux高级编程中进程一章节,内容很多,细细的阅读并练习体会吧
温馨提示:答案为网友推荐,仅供参考
相似回答