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

简直崩溃,有个家伙跟我将fork()函数父子进程共享全局变量!是么?

    来源: 互联网  发布时间:2017-01-19

    本文导语:  简直崩溃,有个家伙跟我将fork()函数父子进程共享全局变量!是么? 我专门测试了下,的确不行。我只知道fork()函数创建了一个调用者进程的副本,只是共享代码段而已。 再求证下。 | 你说...

简直崩溃,有个家伙跟我将fork()函数父子进程共享全局变量!是么?
我专门测试了下,的确不行。我只知道fork()函数创建了一个调用者进程的副本,只是共享代码段而已。

再求证下。

|
你说的没错。

但是,子进程继承父进程的全局变量。

子进程创建以后,可以读取原来父进程的全局变量的值。

但是创建以后,子进程修改了变量,或者是父进程修改了变量值,互相都不影响了。

|
不是的
只是fork后子进程中是父进程的完全复制(其中有写时复制技术),不管什么变量,fork后父子进程中都是一样的,但两者之间没有关系,任何一个进程修改变量后,在另一个进程中都不能知道,更不能访问另一个进程中的变量,即使是全局变量。

你同事说的是错的


|

++

|
man vfork.

       vfork()  is a special case of clone(2).  It is used to create new processes without copying the page tables of the parent process.  It may be use‐
       ful in performance-sensitive applications where a child is created which then immediately issues an execve(2).

       vfork() differs from fork(2) in that the parent is suspended until the child terminates (either normally,  by  calling  _exit(2),  or  abnormally,
       after  delivery of a fatal signal), or it makes a call to execve(2).  Until that point, the child shares all memory with its parent, including the
       stack.  The child must not return from the current function or call exit(3), but may call _exit(2).

|
       The  vfork()  function  differs from fork() only in that the child process can share code and data with the calling process (parent process). This
       speeds cloning activity significantly at a risk to the integrity of the parent process if vfork() is misused.

       The use of vfork() for any purpose except as a prelude to an immediate call to a function from the exec family, or to _exit(), is not advised.

|
这个编个简单的例子验证下就好了

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Linux下c/c++开发之程序崩溃(Segment fault)时内核转储文件(core dump)生成设置方法
  • 为什么两行代码间不加入其他代码就崩溃,而加入了日志代码后就不崩溃?
  • 请教守护进程崩溃的问题.
  • RedHat linux8.0中的KDE经常无故崩溃,为什么呢?
  • kate崩溃怎么办??如何重装或重新配置??
  • 程序崩溃,生成core 文件后 GDB挂载没用。。。
  • 大家的fedora14KDE的software manager崩溃过吗?
  • linux 系统崩溃
  • 应用程序gnome-settings-daemon崩溃是什么错误?
  • KDE崩溃的提示:
  • linux网络模块什么时候会导致内核崩溃啊
  • redhat as3。4张盘的。之前安装的用了2天崩溃过一次,安装后怎么打系统补丁。
  • 软件崩溃记录 CrashRpt
  • gnome-search-tool进程崩溃,如何解决?
  • 我的X-windows忽然崩溃了???什么原因???
  • 打开一个网页,konqueror浏览器就崩溃!!求救!!
  • 求助,系统崩溃了!
  • 我VM的linux启动时提示:应用程序似乎即将崩溃..
  • 整个人快要崩溃了,这个错误请问怎么解决???
  • ubuntu崩溃的问题
  • 嵌入设备usb数据传输时拔掉u盘,系统崩溃应该怎么解决?


  • 站内导航:


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

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

    浙ICP备11055608号-3