#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include <unistd.h>
#include<errno.h>
//fork进程
//变量的引申 每一个进程有独立的进程地址空间有更深入的理解
//写实复制理解
// 1. 子进程修改变量时拷贝
// 2. 只拷贝页 ----> Linux内核内存管理机制
int main(void)
{
int num = 10;
printf("sdfsd\n");
pid_t pid;
printf("befor fork pid:%d\n", getpid());
//fork子进程
pid = fork();
if(-1 == pid)
{
perror("fork err");
return 0;
}
if(pid > 0) // 大于0是父进程
{
printf("parent :%d\n", getpid());
++num;
printf("parent num = %d\n", num);
}
if(0 == pid)
{
printf("chlid :%d\n", getpid());
++num;
printf("chlid num = %d\n", num);
}
printf("after fork\n");
return 0;
}
/*
运行结果
----------------
sdfsd
befor fork pid:15885
parent :15885
parent num = 11
after fork
chlid :15886
chlid num = 11
after fork
-----------------
*/