父子进程之间在fork后。有哪些相同,那些相异之处呢?
父子相同处: 全局变量、.data、.text、栈、堆、环境变量、用户ID、宿主目录、进程工作目录、信号处理方式…
父子不同处: 1.进程ID 2.fork返回值 3.父进程ID 4.进程运行时间 5.闹钟(定时器) 6.未决信号集
父子进程间遵循读时共享写时复制的原则
#include <stdio.h>
#include <unistd.h>
int a = 100; //.data
int main(void)
{
pid_t pid;
pid = fork();
if(pid == 0)//son
{
a = 2000;
printf("child, a = %d\n", a);
} else
{
sleep(1); //保证son先运行 绝大多数情况下是父进程先执行
printf("parent, a = %d\n", a);
}
return 0;
}