一直对fork函数理解不是很深入,如果fork返回的值大于0,则为父进程,如果返回的值为0,则为子进程,那如果是判断之外的语句呢,算子进程还是父进程呢,答案是:都算。详细还是看代码吧。
#include "stdio.h"
#include "unistd.h"
int main(void)
{
pid_t pid;
if((pid = fork())<0){
printf("fork error!\n");
}
if(pid >0){
printf("parent process! pid=%d\n",getpid());
}else{
printf("child process! pid=%d\n",getpid());
}
printf("outside pid=%d\n",getpid());
return 0;
}
执行的结果是:
[root@localhost unix_programmer]# ./a.out
child process! pid=3058
outside pid=3058
parent process! pid=3057
outside pid=3057