qfedu-linux-advanced-level/day3/d4.c

29 lines
563 B
C

#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
#include <sys/wait.h>
#include <stdlib.h> // atexit
#include <fcntl.h>
int main(int argc, char const *argv[])
{
int num = 10;
// vfork 子进程和父进程会共享内存
pid_t pid = vfork();
if (pid == 0)
{
// 子进程
num += 10;
printf("%d 子进程 num=%d\n", getpid(), num);
_exit(0); // 回收资源退出
}
else if (pid > 0)
{
// 父进程
printf("%d 父进程 num=%d\n", getpid(), num);
}
return 0;
}