在多进程编程中,我们用fork系统调用创建子进程,值得注意的是,fork函数复制当前进程并在内核进程表中创建一个新的表项,其堆、栈指针,标志寄存器的值都和父进程相同,但是其ppid被设置成父进程pid,信号位图被清除。而子进程代码和父进程完全相同,其数据也会复制自父进程,但是其复制过程是写时复制,即父子任意进程对数据执行写操作时才会复制,首先是缺页中断,然后操作系统给子进程分配空间并复制数据。此外,创建子进程后父进程中打开的文件描述符在子进程中也是默认打开的,其文件描述符引用计数加一,父进程的用户根目录,当前工作目录等变量的引用计数均会加一。 在多进程编程中,我们用fork系统调用创建子进程,值得注意的是,fork函数复制当前进程并