子进程继承父进程的什么不继承什么
来源:互联网 发布:maven创建java项目 编辑:程序博客网 时间:2024/04/27 13:57
知道子进程自父进程继承什么或未继承什么将有助于我们。下面这个名单会因为 不同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值,进程调度程序可计算出每个进程的全局优先级(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函数创建的计时器
请注意子进程得到的是 这些东西的 *拷贝*,不是它们本身。
由子进程自父进程继承到:
进程的资格(真实(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函数创建的计时器
不继承异步输入和输出
#include <unistd.h>
typedef struct mytest{
int a;
}Test;
int main()
{
Test *obj = (Test *)malloc(sizeof(Test));
pid_t pid;
pid = fork();
if (pid == 0) {
for(;;){
sleep(5);
obj->a++;
printf("===son=====a=%d\n", obj->a);
}
}
for(;;){
sleep(1);
printf("====father====a=%d\n", obj->a);
}
return 0;
}
0 0
- 子进程继承父进程的什么不继承什么
- linux fork出的子进程从父进程继承些什么不继承什么
- 嵌入式 子进程继承什么或未继承什么
- 子进程自父进程继承什么或未继承什么
- 子进程自父进程继承什么或未继承什么
- 子进程自父进程继承什么或未继承什么
- 子进程自父进程继承什么或未继承什么
- 子进程自父进程继承什么或未继承什么
- 子进程自父进程继承什么或未继承什么
- fork之后,子进程从父进程那继承了什么
- fork之后,子进程从父进程那继承了什么
- fork 子进程不继承父进程打开的文件描述符
- 子进程继承父进程中的锁
- fork后子进程对父进程资源的继承
- 子进程继承父进程中互斥锁的讨论
- 子进程继承父进程中互斥锁的讨论
- Linux子进程继承父进程的文件描述符
- Linux中,子进程与父进程的继承关系
- iOS 开发 证书显示 此证书签发者无效 解决方法
- vs使用lib库
- ios 什么是静态库
- python基础学习七: 迭代
- 怎么让Fragment 切换时不重新执行生命周期的方法
- 子进程继承父进程的什么不继承什么
- UI动画__ CABasicAnimation/CATransition
- https://github.com/bluesea147/6.824.git
- springMVC下载在线资源
- IC卡破解与防复制
- 数据库设计指南
- Sublime 最新license
- 第五章第八节-P命名空间
- JSON