分类: C/C++
2008-04-10 17:28:56
fork函数 |
exec函数 |
|
文件描述符表 文件表 索引节点表 |
子进程复制文件描述符表 共享文件表、索引节点表 |
查看每个文件描述符表中的close_on_exec标志,若设置了该标志则关闭对应描述符,否则复制 |
实际用户、实际组 |
从父进程继承 |
保持不变 |
有效用户、有效组 |
从父进程继承 |
若执行文件的set-uid位设置,则设置成程序文件的用户ID,否则保持不变 |
保存的设置-用户-ID、设置-组-ID |
从父进程继承 |
从上面已经分配的有效用户复制过来,也就是说若执行文件的set-uid为设置,则设置成程序文件的用户ID,否则复制有效用户。 |
添加组 |
从父进程继承 |
保持不变 |
对话期ID、进程组ID、控制终端 |
从父进程继承 |
保持不变 |
fsuid、fsgid文件有效用户ID、组ID (针对linux系统) |
从已经被赋值的有效用户、有效组复制过来 |
从已经被赋值的有效用户、有效组复制过来 |
环境变量 |
从父进程继承,也可以在main(argc,argv[][],env[][]) 指定环境变量 |
保持不变,也可以在execve(path[],argv[][],env[][]) 指定环境变量 |
根目录、当前工作目录、文件创建屏蔽字 |
从父进程继承 |
保持不变 |
资源限制 |
从父进程继承 |
保持不变 |
系统执行时间 用户执行时间 |
清空 |
保持不变 |
阻塞信号集合 |
从父进程继承 |
保持不变 |
挂起信号集合 |
被清除 |
保持不变 |
信号处理方式 |
从父进程继承 |
对于设置了信号捕捉函数的信号的处理方式改为默认处理方式,其他信号的处理方式保持不变 |
使用资源(???还有疑问) |
清空 |
保持不变 |
父进程设置的锁(例如文件锁、互斥锁等) |
不继承 |
保持不变 |