【原文地址】http://blog.163.com/dengjingniurou@126/blog/static/53989196200962924412524/

fork出的子进程和父进程的继承关系

2009-07-29 14:44:12|  分类: 默认分类|举报|字号 订阅

 
 

fork出来的子进程,基本上除了进程号之外父进程的所有东西都有一份拷贝,基本就意味着不是全部,下面我们要说的是子进程从父进程那里继承了什么东西,什么东西没有继承。还有一点需要注意,子进程得到的只是父进程的拷贝,而不是父进程资源的本身。

由子进程自父进程继承到:

进程的资格(真实(real)/有效(effective)/已保存(saved)
          用户号(UIDs)和组号(GIDs))

环境(environment)

堆栈

内存

打开文件的描述符(注意对应的文件的位置由父子进程共享,
          这会引起含糊情况)

执行时关闭(close-on-exec) 标志 (译者注:close-on-exec标志可通过fnctl()对文件描
     述符设置,POSIX.1要求所有目录流都必须在exec函数调用时关闭。更详细说明,
     参见《UNIX环境高级编程》 W. R. Stevens, 1993, 
     尤晋元等译(以下简称《高级编程》), 3.13节和8.9节)

信号(signal)控制设定

nice值
          (译者注:nice值由nice函数设定,该值表示进程的优先级,
          数值越小,优先级越高)

进程调度类别(scheduler class)
          (译者注:进程调度类别指进程在系统中被调度时所属的类别,不同类别有不同优先级,根据进程调度类别和nice值,进程调度程序可计算出每个进程的全局优先级(Global process prority),优先级高的进程优先执行)

进程组号

对话期ID(Session ID) (译者注:译文取自《高级编程》,指:进程所属的对话期
     (session)ID, 一个对话期包括一个或多个进程组, 更详细说明参见《高级编程》
     9.5节)

当前工作目录

根目录
          (译者注:根目录不一定是“/”,它可由chroot函数改变)

文件方式创建屏蔽字(file mode creation mask (umask))
          (译者注:译文取自《高级编程》,指:创建新文件的缺省屏蔽字)

资源限制

控制终端

子进程所独有:

进程号

不同的父进程号(译者注:
          即子进程的父进程号与父进程的父进程号不同,
          父进程号可由getppid函数得到)

自己的文件描述符和目录流的拷贝(译者注:
          目录流由opendir函数创建,因其为顺序读取,顾称“目录流”)

子进程不继承父进程的进程,正文(text),
          数据和其它锁定内存(memory locks)
     (译者注:锁定内存指被锁定的虚拟内存页,锁定后,
     不允许内核将其在必要时换出(page out),
     详细说明参见《The GNU C Library Reference Manual》 2.2版,
     1999, 3.4.2节)

在tms结构中的系统时间(译者注:tms结构可由times函数获得,
          它保存四个数据用于记录进程使用中央处理器
          (CPU:Central Processing Unit)的时间,包括:用户时间,系统时间,
          用户各子进程合计时间,系统各子进程合计时间)

资源使用(resource utilizations)设定为0

阻塞信号集初始化为空集(译者注:原文此处不明确,
          译文根据fork函数手册页稍做修改)

不继承由timer_create函数创建的计时器

不继承异步输入和输出

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/xjh_Love_paopao/archive/2008/12/26/3612519.aspx

最新文章

  1. (原)用pixi.js 实现 方块阵点击后原地自转效果
  2. First class ,6 examples anlaysisi
  3. hdu 2680 最短路径(dijkstra算法+多源最短路径单源化求最小值)这题有点意思
  4. centos启动流程[转]
  5. jquery.cookie.js存与取以及过期时间设置
  6. staging server, source congtrol, deply workflow using git
  7. 【iOS-cocos2d-X 游戏开发之九】Cocos2dx利用CCSAXParser解析xml数据&CCMutableDictionary使用与注意!
  8. 【转】shell 教程——06 Shell变量:Shell变量的定义、删除变量、只读变量、变量类型
  9. 介绍shell脚本
  10. PHP基础与JS操作的区别
  11. C# 使用 ffmpeg 进行音频转码
  12. Python实现批量新建SecureCRT Session
  13. 把一个对象转成map对象
  14. python unittest addCleanup中也加失败截图功能
  15. yansir的原生js库
  16. Sep 10th 2018
  17. Node 在 Centos7 系统下的安装
  18. mysql 模糊搜索
  19. TF-IDF词项权重计算
  20. 用python写桌面天气预报,自己的学习曲线。

热门文章

  1. 枚举与剪枝_观察算式(比标准答案还要牛B)
  2. Objective-C中的@dynamic
  3. 简单的Session登录
  4. JavaScript奇技淫巧45招
  5. RPC介绍以及编程
  6. java基础系列——线程池
  7. oracle基础代码使用
  8. poj2407---欧拉函数应用
  9. HDU 4366 Successor(树链剖分+zkw线段树+扫描线)
  10. oralce dubugs