嵌入式 子进程继承什么或未继承什么

原创 2013年12月02日 14:39:06
知道子进程自父进程继承什么或未继承什么将有助于我们。下面这个名单会因为
不同Unix的实现而发生变化,所以或许准确性有了水份。请注意子进程得到的是
这些东西的 *拷贝*,不是它们本身。
     
由子进程自父进程继承到:
     

  • 进程的资格(真实(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值,进程调度程序可计算出每个进程的全局优先级(Globalprocess prority),优先级高的进程优先执行)

  • 进程组号

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

  • 当前工作目录

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

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

  • 资源限制

  • 控制终端

子进程所独有:

  • 进程号

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

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

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

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

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

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

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

  • 不继承异步输入和输出

相关文章推荐

子进程自父进程继承什么或未继承什么

子进程自父进程继承什么或未继承什么 知道子进程自父进程继承什么或未继承什么将有助于我们。下面这个名单会因为 不同Unix的实现而发生变化,所以或许准确性有了水份。请注意子...

windows 套接字子进程继承

网络编程模式中,有一种是多进程模式,主进程侦听,收到连接后,启动子进程处理请求,每个连接一个子进程。 在linux中通过fork很容易实现,因为fork时子进程继承父进程的文件描述符,套接字也是一种...
  • luansxx
  • luansxx
  • 2012年07月26日 14:49
  • 1622

子进程继承父进程中互斥锁的讨论

引言 首先明确一个问题:如果一个多线程程序的某个线程调用了fork函数,那么新创建的子进程里是不会自动创建和父进程相同数量的线程的,它只是调用fork的那个线程的完整复制。并且,子进程会自动...

fork 子进程不继承父进程打开的文件描述符

昨天面试被问到了这个问题,没有回答上来,网上找了一下答案。解决方法是使用 clone 系统调用使用参数在复制时将父进程资源有选择地复制给子进程。下面介绍 fork vfork clone 三者的区别v...

关于子进程继承父进程属性的小问题总结

今天看书,看到用fork创建子进程的一段样例代码: [cpp] view plaincopy #include    #include    #...

linux下fork出的子进程去掉对主进程的继承

在linux中,一旦fork出子进程后,子进程就会继承主进程的描述符,这为开发者带来了不少问题,比如当我使用socket的时候,一旦我绑定了某个端口,而后fork,如果此时fork出的子进程不退出的,...

关于子进程继承父进程属性的小问题总结

今天看书,看到用fork创建子进程的一段样例代码: #include #include #include int main(void) { pid_t pid; char* msg; ...
  • ErenNo1
  • ErenNo1
  • 2011年10月02日 20:26
  • 3156

fork后子进程对父进程资源的继承

使用fork创建一个新进程后,子进程继承了

fork之后,子进程从父进程那继承了什么

知道子进程自父进程继承什么或未继承什么将有助于我们。下面这个名单会因为 不同Unix的实现而发生变化,所以或许准确性有了水份。请注意子进程得到的是 这些东西的 *拷贝*,不是它们本身。 由子...

子进程继承父进程的什么不继承什么

知道子进程自父进程继承什么或未继承什么将有助于我们。下面这个名单会因为 不同Unix的实现而发生变化,所以或许准确性有了水份。 请注意子进程得到的是 这些东西的 *拷贝*,不是它们本身。 由子进程...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:嵌入式 子进程继承什么或未继承什么
举报原因:
原因补充:

(最多只允许输入30个字)