目录
一、fork函数
pid_t fork(void);
fork成功调用执行,返回两次
返回值为0,为子进程
返回值为非负数,为父进程
调用失败返回-1
fork函数会创建一个子进程来执行代码内容。
第一种代码示例:
#include<stdio.h>
#include <sys/types.h>
#include <unistd.h>
int main ()
{
pid_t pid;
pid=getpid();
printf("before pid is %d\n",pid);//输出fork前pid
pid_t pid2;//定义pid2
fork();//使用fork生成子进程
pid2=getpid();//获取当前pid号
printf("after pid2 is %d\n",pid2);//输出当前pid号
if(pid==pid2){//如果为父进程则输出父进程pid号
printf("this is father %d\n",pid2);
}else{//如果为子进程则输出子进程pid号
printf("this is child %d\n",pid2);
}
return 0;
}
可见,运行不仅执行了父进程同时也执行了子进程