#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int main()
{
pid_t pid;
printf("XXXXXXXXXX\n");
pid = fork();
if(pid == -1)
{
perror("fork error:");
exit(1);
}
else if(pid == 0)
{
printf("I am child,pid=%d,ppid=%d \n",getpid(),getppid());
}
else
{
printf("I am parent,pid=%d,ppid=%d \n",getpid(),getppid());
sleep(1);
}
printf("YYYYYYYYYY\n");
return 0;
}
fork函数返回值有两个,返回子进程的pid (非负整数 > 0) (父进程) ,返回0(子进程),<0就出错.
注意返回值,不是fork函数能返回两个值,而是fork后,fork函数变为两个,父子需各自返回一个。
子进程从fork函数开始执行 也要执行fork函数