请教下LINUX 下FORK()问题
太阳石协议 2016-09-20 10:39:17 #include <stdio.h>
#include<unistd.h>
int main()
{
pid_t pid;
printf("\n\n");
pid =fork();
printf("pid = %d\n");
switch(pid)
{
case 0:
printf("child pid =%d\n",getpid());
break;
default:
printf("parent pid =%d\n",getpid());
break;
}
execlp("/mnt/hgfs/share/fork2","argv1","argv2",NULL);
return 0;
}
这是段建立进程程序,执行结果 pid = 5467296
parent pid =2771
pid = 5467296
child pid =2772
argc = 2
argv[0]= argv1
argv[1]= argv2
fork exit
argc = 2
argv[0]= argv1
argv[1]= argv2
fork exit
问题:1: 为什么执行pid =fork()后,PID 不为0,但是还执行CASE 0 这个分支了?
2: pid = fork(); 执行后 得到的子进程PID 与子进程GETPID后得到的数 是一个意义么?