Linux fork哪些被继承,哪些不被继承

fork系统调用产生一个新的进程, 叫子进程, 是调用进程的一个复
制品. 调用进程叫父进程, 子进程继承了父进程的几乎所有的属
性:

. 实际UID,GID和有效UID,GID.
. 环境变量.
. 附加GID.
. 调用exec()时的关闭标志.
. UID设置模式比特位.
. GID设置模式比特位.
. 进程组号.
. 会话ID.
. 控制终端.
. 当前工作目录.
. 根目录.
. 文件创建掩码UMASK.
. 文件长度限制ULIMIT.
. 预定值, 如优先级和任何其他的进程预定参数, 根据种类不同
决定是否可以继承.
. 还有一些其它属性.
 
但子进程也有与父进程不同的属性:
. 进程号, 子进程号不同与任何一个活动的进程组号.
. 父进程号.
. 子进程继承父进程的文件描述符或流时, 具有自己的一个拷贝
并且与父进程和其它子进程共享该资源.
. 子进程的用户时间和系统时间被初始化为0.
. 子进程的超时时钟设置为0.
. 子进程不继承父进程的记录锁.
. pending signals 也不会被继承。
 
 
linux下fork的实现是copy-on-write,也就是子进程与父进程初始时只有页表和task structure不同。
原文地址:https://www.cnblogs.com/super119/p/2259286.html