• 在现有的Linux内核在实现fork()函数时往往是一种"写时赋值"的情况
  • 父子之间的进程ID是不同的,其余大部分资源都是被复制的

在下面的例子中可以看到,全局变量,局部变量,动态申请的变量都是复制的,互不影响

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>/*父子进程的共享资源*/
int global = 1;/*初始化的全局变量,存在data段*/
int main(void)
{pid_t pid = 1;/*存储进程id*/int stack = 1;/*局部变量,存在栈中*/int *heap;/*指向堆变量的指针*/heap = (int *)malloc(sizeof(int));*heap = 3;/*设置初值3*/pid = fork();/*创建一个新的进程*/if (pid < 0) {perror("fail to fork");exit(-1);}else if (pid == 0) {/*子进程,改变变量的值*/global++;stack++;(*heap)++;/*打印出变量的值*/printf("In sub-process,global: %d,stack: %d,heap: %d\n", global, stack, *heap);exit(0);}else {/*父进程*/sleep(2);/*休眠两秒钟,确保子进程已执行完毕,在执行父进程*/printf("In parent-process,global: %d,stack: %d,heap: %d\n", global, stack, *heap);}return 0;
}
/*父子进程的共享资源*/

父子进程之间的共享资源相关推荐

  1. 线程与进程之间的共享资源

    线程和进程之间的共享资源方式 进程之间的共享资源的方式 1.消息队列 2.共享内存 3.管道(有名管道.无名管道) 4.信号 5.套接字 同一个进程的不同线程之间可以共享的资源 1.堆,由于堆是在进程 ...

  2. python进程的注意点(进程之间不共享全局变量、主进程会等待所有的子进程执行结束再结束)

    1. 进程的注意点介绍 进程之间不共享全局变量 主进程会等待所有的子进程执行结束再结束 2. 进程之间不共享全局变量 import multiprocessing import time# 定义全局变 ...

  3. linux父子进程之间之间的区别与联系

    刚fork之后: 父子相同处: 全局变量..data..text.栈.堆.环境变量.用户ID.宿主目录.进程工作目录.信号处理方式... 父子不同处: 1.进程ID   2.fork返回值   3.父 ...

  4. 信号实现父子进程之间的同步--sigsuspend的作用

    函数原型: #include <signal.h> int sigsuspend(const sigset_t *mask); 作用: 用于在接收到某个信号之前,临时用mask替换进程的信 ...

  5. 进程之间通信 共享内存

    命令 ipcs 命令查看共享内存.消息队列.管道等相关信息 ipcs -m 查看共享内存的信息 代码 创建共享内存 共享内存 关联 进程 分离共享内存 删除共享内存 #include <sys/ ...

  6. 使用named_mutex实现读写锁,实现进程之间读共享写独占

    代码 代码的名称是read_write_mutex.h 这个代码可用,但是未优化,还存在冗余的代码 如果涉及到进程挂掉了,造成进程堵塞,如何解决?还未涉及 //#ifndef BOOST_THREAD ...

  7. fork后父子进程共享资源

    fork后父子进程共享资源 Unix环境高级编程中8.3节中说,"子进程是父进程的副本.例如,子进程获得父进程数据空间.堆和栈的副本.注意,这是子进程所拥有的副本.父进程和子进程并不共享这些 ...

  8. 同一进程中线程的共享资源以及独占资源

    线程之间的共享资源以及独占资源 共享资源 独占资源 共享资源 1.进程申请的堆内存 2.进程打开的文件描述符 3.进程的全局数据(可用于线程之间通信) 4.进程ID.进程组ID 5.进程目录 6.信号 ...

  9. linux:进程之间的通信

    ipc :进程间通信(InterProcess Communication) 1.管道 同一时间是单向的:父读子写,或父写子读  管道中的数据 ,读走就没了  参数是一个整型数的数组,数组的大小是两个 ...

最新文章

  1. @ConfigurationProperties 注解
  2. python日志_python日志处理
  3. kaggle中的Two-Stage比赛规则以及metadata数据的使用规定
  4. 分数调查 HihoCoder - 1515(带权并查集)
  5. 美军开发远程人脸识别系统,实现1公里内目标识别
  6. 获取本机IP(考虑多块网卡、虚拟机等复杂情况)
  7. 【三维深度学习】多视角立体视觉 MVSNet代码解读
  8. fastreport iif小于条件_杭州灭菌柜验证需要什么条件
  9. 漂亮大气!小米武汉总部正式开园:从签约到建成使用仅用时两年
  10. ThinkPhp学习11
  11. 第四章 基本TCP套接字编程 第五章 TCP客户/服务器程序实例
  12. webClient请求JAVA超时解决方案
  13. 10HTML5期末大作业:影视在线网站设计——电影网H5(9页) HTML+CSS+JavaScript 学生DW网页设计作业成品 web课程设计网页规划与设计 计算机毕设网页设计源码
  14. 简单的HTML5音乐播放器带歌词滚动,基于jQuery实现歌词滚动版音乐播放器的代码...
  15. Java整合PayPal支付结账和支出
  16. 《单域名下整合动网、动易、OBlog程序》
  17. Openbravo如何新建一个调用
  18. word/exce转lPDF乱码(思源字体)
  19. 方舟linux服务器更新,方舟怎么更新服务器版本 | 手游网游页游攻略大全
  20. 用python做思维导图软件_分享一下python数据处理工具思维导图

热门文章

  1. 计算机信息的容量单位是什么,信息的基本容量单位是
  2. Thttpd源程序解析9 thttpd.c文件解析
  3. AlexNet模型思想详解及核心代码实现
  4. NFC手机(小米2A刷机到Android4.4)HCE环境搭建
  5. 新浪企业邮箱服务器怎么设置,新浪企业邮箱|客户端使用
  6. 使用Python读取和处理安卓传感器数据与CSV读取
  7. 安卓手机利用蓝牙调试APP搜索不到HC-05模块连接的问题
  8. SpringBoot结合redis解决PV、UV亿级流量
  9. 使用opencv库出现的问题
  10. 2016域控服务器搭建,Windows Server 2016 辅助域控制器搭建