父进程和子进程之间

fork后父子进程共享资源

Unix环境高级编程中8.3节中说,“子进程是父进程的副本。例如,子进程获得父进程数据空间、堆和栈的副本。注意,这是子进程所拥有的副本。父进程和子进程并不共享这些存储空间部分。父进程和子进程共享正文段。”

书中还预留了例子说明子进程对变量所做的改变并不影响父进程中该变量的值。

/*** fork.c* 探讨父子进程共享变量问题**/#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>int globvar = 6;        /* external variable in initialized data */
char buf[] = "a write to stdout\n";int 
main(void)
{int var;    /* automatic variable on the stach */pid_t pid;var = 88;if (write(STDOUT_FILENO, buf, sizeof(buf)-1) != sizeof(buf)-1){perror("write error");exit(1);}printf("before fork\n");    /* we don't flush stdout */if ((pid = fork()) < 0){perror("fork error");exit(1);} else if (pid == 0) {    /* child */globvar++;          /* modify variables */var++;} else {sleep(2);           /* parent */}printf("pid = %ld, glob = %d, var = %d\n", (long)getpid(), globvar, var);exit(0);
}


/myblog/source/fork# gcc fork.c -o fork
/myblog/source/fork# ./fork
a write to stdout
before fork
pid = 12071, glob = 7, var = 89
pid = 12070, glob = 6, var = 88


编译和运行程序,如>如上,可以看出,fork后子进程只是获得了父进程的副本,所有变量的变更都只在各自进程中有效。

实际上,fork后子进程和父进程共享的资源还包括:

  • 打开的文件
  • 实际用户ID、实际组ID、有效用户ID、有效组ID
  • 添加组ID
  • 进程组ID
  • 会话期ID
  • 控制终端
  • 设置-用户-ID标志和设置-组-ID标志
  • 当前工作目录
  • 根目录
  • 文件方式创建屏蔽字
  • 信号屏蔽和排列
  • 对任一打开文件描述符的在执行时关闭标志
  • 环境
  • 连接的共享存储段(共享内存)
  • 资源限制

父子进程之间的区别是:

  • fork的返回值
  • 进程ID
  • 不同的父进程ID
  • 子进程的tms_utime,tms_stime,tms-cutime以及tms_ustime设置为0
  • 父进程设置的锁,子进程不继承
  • 子进程的未决告警被清除
  • 子进程的未决信号集设置为空集

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/243568.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VHDL文字规则

VHDL文字规则 数字 "=>" 有“于是,then” 的意思 d1 <= 10#170#; --向d1赋值10#170#(十进制表示,等于170) d2 <= 16#FE#; --(十六进制表示,等于254) d1 <= 2#1111_1110#; --(二进制表示,等于254) d1 <= 8#376#; --(八进制表示,等于254) d1 &…

微软:PHP在IIS 7上雄起

WordCamp是WordPress爱好者及开发人员的大会&#xff0c;在上周末的WordCamp China 2009大会上&#xff0c;来自微软的王超群发表了题为“熟悉的陌生人 - 微软对PHP的新支持使WordPress在IIS 7上雄起”的主题演讲&#xff0c;展示了PHP在IIS 7上运行的现状及微软在这方面做出的…

798·锣鼓巷·牛街

798艺术区。一个外国女人和一个中国女孩。涂鸦。 锣鼓巷。两个小伙子以独特的方式在交谈。 牛街。清晨。街头花园。小孩与小狗。 牛街。清晨。街头花园。一个晨睡的男人。 798艺术区的后街。一个外国女孩。 798后街。一个骑自行车的小男孩。

SQL多字段模糊查询

http://user.qzone.qq.com/382164370#!app2&viaQZ.HashRefresh&pos1346996967 代码是在VC里面: CString sql, str;sql.Format(_T("SELECT * FROM tbPatient WHERE admitDate BETWEEN CDate(%s %s) AND CDate(%s %s)"),dtStartDate.Format(_T("%x"…

数据类型与顺序语句

数据类型与顺序语句 数据类型 VHDL要求设计实体中的每一个常数、信号、变量、函数以及设定的各种参量都必须具有确定的数据类型, 只要相同的数据类型的量才能互相传递和作用。VHDL作为一种强类型语言主要表现在以下两方面 (1)VHDL程序中的任何数据对象都必须定义一个确定的…

就是想让你无法无动于衷:观瑞士的“行为艺术”

798艺术区国际行为艺术节。瑞士女艺术家吉色拉•侯楚力&#xff08;Gisela Hochuli &#xff09;表演的作品&#xff1a;3倍长度的蜡烛。 时间&#xff1a;20-30分钟。场地&#xff1a;室内。过程&#xff1a;点燃一根长棉线&#xff0c;从线的一头烧到另头——棉线燃尽后再点燃…

Linux 内核源代码的目录结构

Linux 内核源代码的目录结构Linux 内核源代码包含如下目录。● arch &#xff1a;包含和硬件体系结构相关的代码&#xff0c;每种平台占一个相应的目录&#xff0c;如i386、arm、arm64、powerpc、mips 等。Linux 内核目前已经支持30 种左右的体系结构。在arch目录下&#xff0c…

北京曲剧《烟壶》也好看

几乎是第一次看地方戏。应朋友之邀前两天看了北京曲剧《烟壶》。导演是人艺老导演顾威先生。内容是根据当代作家邓友梅先生的同名小说改编。 曲剧属于北京的地方戏种&#xff0c;唱腔来源于单弦曲牌&#xff0c;是上世纪50年代兴起的剧种&#xff0c;创始人为奉调大鼓演员魏喜奎…

常用顺序语句

常用顺序语句 VHDL有6类基本顺序语句:赋值语句、流程控制语句、等待语句、子程序调用语句、返回语句和空操作语句。 赋值语句 赋值语句有两种,即信号赋值语句和变量赋值语句。 VHDL规定,赋值目标与赋值源的数据类型必须严格一致。CASE语句 CASE语句属于顺序语句,因此必…

“城迷”:黑白梦与精神逃离

杨羽的城市是虚拟的&#xff0c;所以看她的《城迷》系列&#xff0c;你不必感到意外或者试图通过她的图片去对应现实中的城市。因为它是不存在的&#xff0c;或者说&#xff0c;它只是存在于杨羽内心的一个幻象。 用摄影记录一个城市的大师很多&#xff0c;他们通过游走或者驻足…

什么是SoC?什么是IP核?它们有什么关系?

1. 什么是SoC​ SoC&#xff08;System on a Chip &#xff09;中文名是系统级芯片。20世纪90年代中期&#xff0c;因使用ASIC实现芯片组受到启发&#xff0c;萌生应该将完整计算机所有不同的功能块一次直接集成于一颗硅片上的想法。SoC应由可设计重用的IP核组成&#xff0c;IP…

历史是“混合体”,也是“内幕”:说说《三国大传》

“三国”时代是中国历史最上短命的一个时期之一&#xff0c;历史学家认为只有四十五年&#xff0c;最多不过百年。但是关于这个时代的文字记载和民间传说却可谓汗牛充栋&#xff0c;人们对它的关注不亚于盛唐和明清。上有《后汉书》、《三国志》&#xff0c;后有《资治通鉴》和…

一个C++加密工具EncryptDecrypt.dll

EncryptDecrypt.dll文件封装了Rijndael加密算法, 结合SHA-256与 CNewRandom( http://www.codeproject.com/Articles/5489/KeePass-Password-Safe这个里面用到的基于SHA-256伪随机数)加密与解密字符串.......这个加密工具有个重要的特性就是, 就算是用同样的密钥加密同一个字符…

实用的计数器

实用的计数器 library IEEE; use IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL;entity CNT10 is -- Port ( );PORT(CLK,RST,EN,LOAD : IN STD_LOGIC;DATA : IN STD_LOGIC_VECTOR(3 DOWNTO 0); --4位预置数 DOUT : OUT STD_LOGIC_VECTOR(3 DOWNTO 0); --计数值输…

香港版的芭蕾舞剧《吉赛尔》

保利剧院。由香港芭蕾舞团演出的二幕舞剧《吉赛尔》&#xff08;Giselle&#xff09;。《吉赛尔》与《天鹅湖》《睡美人》被称为世界三大芭蕾舞剧。作曲是法国作曲家亚杜夫亚当(Adolphe Adam 1803-1856)。伴奏是中央芭蕾舞团交响乐团&#xff0c;指挥张艺。舞蹈演员大多来自内地…

嵌入式名词以及简略说明

SCM&#xff1a;Single Chip Microcomputer 单片机 MCU&#xff1a;Micro Controller Unit SoC&#xff1a;

中国少数民族文学馆在内蒙古呼和浩特揭幕

中国少数民族文学馆开馆庆典于2009年9月15日在呼和浩特的内蒙古师范大学新校区和林格尔举行。来自全国的各民族作家、相关领导以及在校的师生1000多人参加了庆典仪式。 中国少数民族文学馆的全景。占地面积100亩&#xff0c;建筑面积5500平方米。据说每个民族占据100平方米&…

通过ADO压缩数据库

//ADOConn.h #pragma once //ADO的Error与ATL::CAtlRegExp<>的Error发生命名冲突 #import "c:\Program Files\Common Files\System\ado\msado15.dll" no_namespace \ rename("EOF","adoEOF") rename("BOF","adoBOF&qu…

安娜·塞克泽沃斯卡的“小人物”

安娜塞克泽沃思卡&#xff08;Anna Syczewska&#xff09;波兰女行为艺术家。生于1979年。毕业于克拉科夫美术学院雕塑系。专业&#xff1a;行为艺术表演、声音和视频装置、互联网艺术等。今天她表演的作品是《小人物》&#xff08;Nobody&#xff09;。时间30分钟。 现场。一张…

8位移位寄存器和优先编码器

8位移位寄存器和优先编码器 位移位寄存器 library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity SHFT is -- Port ( );PORT(CLK,LOAD : IN STD_LOGIC;QB : OUT STD_LOGIC;DIN : IN STD_LOGIC_VECTOR(7 DOWNTO 0);DOUT : OUT STD_LOGIC_VECTOR(7 DOWNTO 0)); end SHFT;archite…