xhs1115 发表于 2005-11-21 16:41:55

关于全局变量!

在一个应用程序中有多个进程,在一个公有头文件里定义了全局变量,因为每个进程都有自己的空间,那么全局变量存放在哪里?才能保证每个进程都能读取到。

marship 发表于 2005-11-22 12:54:54

在头文件定义不很好,如果在同一程序的不同文件中都有包含的话,会引起变量重复定义
多进程访问同一变量一般在把它入在共享内存段里去,看看shmget,shmat

xhbdahai 发表于 2005-12-18 01:01:38

全局变量是相对一个进程来说的。所谓全局变量并不是对多个进程而言。老兄应该好好理解一下进程的概念,多个进程不是和多个函数那样!

updatedb 发表于 2005-12-25 20:41:32

fork进程时,会全面拷parent的空间,除了PID

yuyulvxian 发表于 2005-12-26 08:47:53

一个应用程序的多个进程一般都是有血缘关系的吧

bywind 发表于 2005-12-27 22:19:39

fork产生子进程的时候,子进程汇完整的复制父进程的内存空间,当然也包扩父进程的全局变量;但是父子进程并不是共享这个全局变量;fork之后父进程的全局变量内容改变不会影响到子进程。
如果要再多进程之间进行通讯,楼主可以找一下ipc的资料,二楼所说的共享内存就是一种很好的方式。
页: [1]
查看完整版本: 关于全局变量!