子进程从父进程继承和不继承的东西

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

进程的资格(真实(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函数创建的计时器

不继承异步输入和输出

转自:https://www.cnblogs.com/hnrainll/archive/2011/05/11/2043472.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Linux操作系统中,shell是一种命令行解释器,负责解析用户输入的指令并执行相应的操作。当shell启动一个子进程时,子进程会创建一个新的进程空间,这个新的进程空间是独立于进程的,因此子进程不会继承进程的资源。 首先,子进程不会继承进程的文件描述符。文件描述符是用于标识打开的文件或其他I/O设备的整数。在进程中打开的文件描述符对于子进程来说是不可见的,子进程需要重新打开文件或使用dup()和dup2()函数复制进程的文件描述符。 其次,子进程不会继承进程的环境变量。环境变量是一组键值对,它们存放了一些系统和用户相关的信息。在进程中设置的环境变量对于子进程来说是不可见的,子进程需要自己设置环境变量或通过使用exec()系列函数调用其他程序。 另外,子进程的工作目录也不会继承进程的工作目录。工作目录是指程序运行时的当前目录,决定了相对路径的解析。在进程中改变的工作目录对于子进程来说是不可见的,子进程需要自己通过chdir()函数改变工作目录。 最后,子进程不会继承进程的信号处理方式。信号是一种软件中断,用于通知进程发生了某个事件。在进程中设置的信号处理函数对于子进程来说是不可见的,子进程需要自己设置信号处理方式。 综上所述,shell子进程继承进程的资源,包括文件描述符、环境变量、工作目录和信号处理方式。子进程需要重新打开文件、设置环境变量、改变工作目录和设置信号处理方式,以完成自己的任务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值