29 lines
563 B
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;
|
|
}
|