一个现有的进程可以调用fork函数来创建一个新进程。
#include <unistd.h>
pid_t fork(void);
返回值:子进程返回0,父进程返回子进程ID ,出错返回-1
例子:
#include <unistd.h>
#include <sys/types.h>
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <math.h>
int main(void)
{
pid_t child;
child=fork();
if(child==-1)
{
printf("Fork Error:%s\n",strerror(errno));
exit(1);
}
else if(child==0)
{
printf("I am the child:%d\n",getpid());
//getpid() 返回整型,用%d
printf(" and this is my father:%d\n",getppid());
exit(0);
}
else
{
printf("I am the father\n");
sleep(1);
printf("ok,I am the father:%d\n",getpid());
return 0;
}
}
运行结果为:
I am the child:8618
and this is my father:8617
I am the father
ok,I am the father:8617