当前位置:  技术问答>linux和unix

linux:这样能实现父、子进程共享变量吗?

    来源: 互联网  发布时间:2016-05-31

    本文导语:  #include int shareData;//要共享的变量 int main {     int pid=fork();     if(pid==0)     {            extern int shareData;//声明使用外部变量              ////............     } else {    //....... } return 0; } | ...


#include

int shareData;//要共享的变量
int main
{
    int pid=fork();
    if(pid==0)
    {
           extern int shareData;//声明使用外部变量
             ////............
    }
else
{
   //.......
}
return 0;
}


|
当然不行哦,你只要一写,那么核心就会将父、子进程的数据段分开,各有一份修改前的拷贝...

|
父子进程是有两个不同的进程空间,他们空闲的可以是文件描述符,信号处理,等。
对于变量来说,除非你这个变量是共享内存里的。

|
子进程拥有父进程几乎所有的备份(堆,栈等).
2者间通信,你可以用管道,消息队列,共享内存啊.

你这里的想法就用共享内存可以搞定.

|
父子进程属于不同的进程空间,父进程的变量会在子进程中复制一份,属于不同的变量了。当然可以创建一块共享内存进行消息传递。
有一个不可取的方法是,在vfork没有调用exec之前父进程阻塞,子进程使用父进程的地址空间,使用相同的变量,直到子进程调用exit或exec唤醒父进程。

    
 
 

您可能感兴趣的文章:

  • Linux下如何查看,设置环境变量并立即生效
  • 程序中获取的环境变量能够根据Linux系统中相应环境变量而变化吗?
  • linux 下设置环境变量 使用了setenv 和putenv 在程序结束以后 发现变量又变回去了
  • Linux能否自定义系统变量一如windows里的系统环境变量可以"新建"一样
  • linux动态链接库里全局变量和静态变量会导致动态库不可重入吗?
  • linux内核怎么定义汇编全局变量及在c文件中使用这个变量?有关0。11下的字符回显
  • [linux shell] 如何获得以一个变量的值为名的变量的值
  • linux 下环境变量如何设呀!
  • linux下如实现与window下的驱动器实现文件共享?? iis7站长之家
  • Linux下环境变量问题以及FLEX安装问题
  • 在LINUX下安装SYBASE 需添加环境变量问题(在线等待)
  • 在Linux Shell scripts下变量如何取linux的命令运行值
  • 我想问个关于Linux系统下Sybase环境变量的问题
  • linux下到底如何设置环境变量?在哪设置?详细具体点
  • linux中大量的全局变量怎么体现结构化的程序设计?
  • linux 如何在两个.c文件中引用对方的变量。
  • linux~shell~如何取变量的值并在后面添加字符?
  • linux下,如何修改环境变量?
  • 请教:linux平台(redhat7.2)下的环境变量在哪里设置?
  • 在linux下,如何查询系统的预定义变量?
  • ACE 如何在linux下设置环境变量
  • linux僵尸(zombie)进程介绍及清除
  • 高手请教!linux怎样通过pid获取进程信息,如:进程名、进程状态等?
  • linux下进程占用内存空间详解
  • linux命令如何实现重启父进程而不会使其子进程退出
  • Linux进程的内核栈和用户栈概念,相互关系及切换过程
  • Linux中最多同时可以开多少个进程,一个进程可以开多少个线程?
  • linux下进程间通信:共享内存原理及具体用法举例(基于c/c++语言)
  • Linux守护进程 的子进程 终端处理
  • Linux内核进程与应用进程的通信方式有哪些?
  • 在linux,如何用共享内存来实现进程间的通讯?(这些进程没有父子关系)
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • linux下通过crond实现自动执行程序
  • Linux和Unix相对WIN、NETWARE有什么好处?他们之间有什么区别?WIN、NETWARE能实现的功能LINUX和UNIX能实现吗?
  • Linux下c函数dlopen实现加载动态库so文件代码举例
  • linux下如实现与window下的驱动器实现文件共享??
  • Linux内存文件系统(ramdisk)的三种实现方式
  • windows 下的PortTunnel 在linux下怎么实现?或者相应的已经实现的软件?端口映射
  • linux内存文件系统ramfs实现原理
  • 在linux下如何编程实现nslookup命令实现的IP地址和域名互相转换的功能?
  • Linux 共享内存介绍及实现代码
  • 我需要一个模型,在 LINUX C 下。实现线程间的控制,执行,阻塞,再执行。。。。。不知道如何实现。
  • linux下grep命令实现查找多个关键字(与关系和或关系)
  • 我想做linux下的还原备份,实现与还原精灵虚拟还原等一样的功能,应该怎么做?另外现在有实现这种功能的成熟产品是哪一种?
  • Linux下C语言strstr()查找子字符串位置函数详细介绍(strstr原型、实现及用法)
  • 关于linux c程序实现自动实现telnet的问题
  • Linux c socket编程:简单的客户端(client)和服务端(server)实现
  • 请问高手linux中用md5来实现一串字符串的加密,用c++/c实现
  • 在linux实现在任意给定的目录查找文需要的件的程序? 下面的实现思路可不可以呢????
  • 请问:有没有人在Linux下实现过计费网关?
  • 关于XP系统下批处理文件如何实现执行linux下脚本,从而实现版本的自动化编译
  • 如何在linux下实现event事件机制
  • Linux音频, Linux下能否实现 实时语音聊天 ?
  • linux c/c++ IP字符串转换成可比较大小的数字
  • 在win分区上安装linux和独立分区安装linux有什么区别?可以同时安装吗?(两个linux系统)
  • linux哪个版本好?linux操作系统版本详细介绍及选择方案推荐
  • 在虚拟机上安装的linux上,能像真的linux系统一样开发linux程序么?
  • secureCRT下Linux终端汉字乱码解决方法
  • 我重装window后,把linux的引导区覆盖了,进不了linux怎么办?急啊,望热心的人帮助 (现在有linux的盘)
  • Linux c字符串中不可打印字符转换成16进制
  • 安装vmware软件,不用再安装linux系统,就可以模拟linux系统了,然后可以在其上学习一下LINUX下的基本操作 了?
  • Linux常用命令介绍:更改所属用户群组或档案属性
  • 红旗Linux主机可以通过127.0.0.1访问,但如何是连网的Win2000机器通过Linux的IP去访问Linux


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3