子进程会继承父进程什么资源

1.实际UID和GID,以及有效的GID和UID
2.所有环境变量
3.进程组ID和会话ID
4.当前工作路径。除非用chdir()修改
5.打开的文件
6.信号响应函数
7.整个内存空间,包括栈、堆、数据段、代码段、标准I/O缓冲区等

子进程不会继承父进程什么资源

1.进程的进程号PID,PID号是身份证号码,每个进程的PID号都不一样
2.记录锁。父进程对某个文件加了锁,子进程不会继承这个锁
3.挂起的信号

本文主要验证继承资源的第七点

下面展示一些 内联代码片

#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
int main(int argc(),int *argv[])
{//定义一个整型变量aint a = 100;pid_t pid = fork();if(pid > 0){//父进程让等0.01s让子进程先运行usleep(10000);a -= 10;printf("father &a:%p\n",&a);printf("father:a = %d\n",a);}if(pid == 0){a -= 20;printf("child &a:%p\n",&a);printf("child:a = %d\n",a);}printf("2.%d,%p\n",a,&a);return 0;
}


上图为代码的运行结果,子进程和父进程都打印了a的地址,结果是一样的,说明子进程并不是将父进程的资源复制一份,而是直接使用父进程的资源。而且他们对同一个变量进行操作不会相互影响,是因为子进程是在复制的副本对变量进行操作。

子进程和父进程资源共享关系相关推荐

  1. php修改父进程变量,shell子进程修改父进程的环境变量值

    shell子进程修改父进程的环境变量值 脚本中的环境变量通过 export 导出,脚本中调用其他脚本使用这个变量 这里有两个脚本程序 hello 和 hello1 hello 脚本代码 #!/bin/ ...

  2. linux的子进程和父进程,[Linux进程]在父进程和子进程中分别对文件进行操作

    [Linux进程]在父进程和子进程中分别对文件进行操作 发布时间:2020-04-10 19:36:49 来源:51CTO 阅读:917 作者:银河星君 /*子进程和父进程同时对一个文件进行写操作导致 ...

  3. linux子进程崩溃父进程如何得知并重启子进程,子进程崩溃父进程如何得知并重启子进程...

    子进程崩溃父进程如何得知并重启子进程 发布时间:2010-11-30 16:00:14来源:红联作者:skywing 大家好,我有一个程序,主进程中fork出两个进程,子进程循环执行任务, 我想做一个 ...

  4. python3 子进程和父进程

    1 from multiprocessing import Process   2 import time,os   3 def fun(name):   4     time.sleep(2)   ...

  5. OpenProcess | Process32First | GetExitCodeProcess - WINDOWS API 第二弹 非通信方式的子进程获取父进程信息

    OpenProcess | Process32First | GetExitCodeProcess - WINDOWS API 第二弹 进程相关 目录 一.得到父进程ID(Process32First ...

  6. fork之子进程随父进程死亡prctl

    利用prctl的PR_SET_PDEATHSIG属性设置父进程死亡时,发送给子进程的信号. int pid; pid = fork() if (pid == 0) {//子进程 //设置父进程死亡时自 ...

  7. linux子进程父进程例子,linux 子进程访问父进程

    问题分析 ECS Linux 系统下 Apache 的默认工作模式是 prefork MPM,使用多个子进程,每个子进程只有一个线程.每个进程在某个确定的时间只能维持一个连接,效率高,但内存占用量比较 ...

  8. fork()调用使子进程先于父进程被调度

    由于内核使用写时复制机制,fork之后父子进程是共享页表描述符的,如果让父进程先执行,那么有很大几率父进程会修改共享页表指向的数据,那么内核此时必须给父进程分配并复制新的页表供父进程修改使用,那么如果 ...

  9. Linux父进程如何发信号给子进程,在父进程和子进程之间发送信号

    我正试图从parrent进程向子进程发送一个用户定义的(SIGUSR1或SIGUSR2)信号.子进程接收到信号后,会等待5秒钟,并将另一个用户定义的信号发送给parrent进程.当parrent进程接 ...

最新文章

  1. Unreal Engine+Houdini创造程序性游戏场景视频教程
  2. 数据包分析中Drop和iDrop的区别
  3. 和get redis_Redis练习操作
  4. 易语言服务器不在一个网段,设置二级路由器保持局域网在同一个网段
  5. JAVA多线程之UncaughtExceptionHandler——处理非正常的线程中止
  6. js将时间戳格式化为HH:ii:ss的格式
  7. .Net程序调试与追踪的一些方法
  8. P4389 付公主的背包(生成函数/多项式)
  9. Cocoa编程中视图控制器与视图类详解
  10. 数据科学入门与实战:Matplotlib绘图hist
  11. 灰色关联度分析_数学建模|关联分析之术|灰度预测模型预备知识
  12. 2018年双十一:计算机品类纸质书籍销量冠军
  13. 团队项目(一)(江山代有才人秃队)
  14. 致计算机专业准大一新生
  15. iOS开发(OC)——音频播放AVPlayer
  16. 同步练习(Java SE(十二))
  17. python中extend什么意思_python中extend是什么意思
  18. 滑动差分倒谱系数 matlab,【网安学术】基于音频特征参数的多语种分类算法
  19. 计算机音乐告白之夜,温柔版:《告白之夜(纯音乐)》
  20. tensorflow 1.10下Mask RCNN实现自己数据集

热门文章

  1. STM32F10xxx20xxx21xxxL1xxxx Cortex-M3程序设计手册 阅读笔记四(5):系统滴答定时器
  2. 醉月湖畔,为谁染红妆
  3. 免费收录网站的搜索引擎登录口大全
  4. PyTorch中的squeeze()和unsqueeze()详解与应用案例
  5. macOS - Cocoa开发之沙盒机制及访问Sandbox之外的文件
  6. 网络工程——HCNA网络技术的简单配置
  7. 不同类型怎么选择服务器
  8. 教育培训python
  9. element-ui表格求和求平均数
  10. 抛弃easyconnent桌面端,使用浏览器插件连接校园内网