frok函数
目录
fork函数
1.一个进程,包括代码、数据和分配给进程的资源。
2.fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两个进程也可以做不同的事。
3.一个进程调用fork()函数后,系统先给新的进程分配资源,例如存储数据和代码的空间。然后把原来的进 程的所有值都复制到新的新进程中,只有少数值与原来的进程的值不同。相当于克隆了一个自己。
2.getpid/getppid函数
getpid:得到当前进程的PID
getppid:得到当前进程的父进程的PID
代码解析 :
使用fork函数创建了父子进程,用参数pid接收返回值,并通过判断参数pid的值让父子进程分别执行不同的代码,并用getpid和getppid函数得到当前进程的PID和当前进程的父进程的PID。
#include<stdio.h>
#include <sys/types.h>
#include <unistd.h>
int main(int argc,int *argv[])
{
pid_t pid;
int i=0;
pid =fork();
if(pid>0)
{
printf("this is father process %d \n",getpid());
}
else if (pid==0)
{
printf("this is child process %d ppid is %d \n",getpid(),getppid());
}
for(i=0;i<4;i++)
printf("i=%d\n",i);
return 0;
}