vfork
vfork的特点 — 创建子进程:
①子进程必定先运行,等到子进程调用exit或者exec后,父进程才能运行
②父子进程共享空间(共享内存数据)
fork 是 创建一个子进程,并把父进程的内存数据copy到子进程中。父子进程谁先运行是随机的。
代码:
#include <stdio.h> #include <stdlib.h> #include <sys/types.h> #include <unistd.h> #include <errno.h> int main() { int data=1; int pid = vfork(); if(pid == -1) { perror("vfork"); } else if(pid == 0) { data++; printf("子进程,data:%d\n",data); exit(0); } else { printf("父进程,data:%d\n",data); } return 0; }
代码实现效果: