fork之后是父进程先执行还是子进程先执行是不确定的,这取决于内核所用的调度算法。
fork的一个特性是父进程的所有打开文件描述符都被复制到子进程中。
父进程和子进程共享代码段,但是并不共享数据段、堆、栈等存储空间。
现在的很多实现采用写时复制(COW)技术,内核将这些存储空间改为只读,如果父进程和子进程中的任一个试图修改这些区域,内核只为修改的那块内存制作一个副本,通常是虚拟存储系统中的一页。
fork之后是父进程先执行还是子进程先执行是不确定的,这取决于内核所用的调度算法。
fork的一个特性是父进程的所有打开文件描述符都被复制到子进程中。
父进程和子进程共享代码段,但是并不共享数据段、堆、栈等存储空间。
现在的很多实现采用写时复制(COW)技术,内核将这些存储空间改为只读,如果父进程和子进程中的任一个试图修改这些区域,内核只为修改的那块内存制作一个副本,通常是虚拟存储系统中的一页。