关于全局变量!

xhs1115 2005-11-21 04:29:39
在一个应用程序中有多个进程,在一个公有头文件里定义了全局变量,因为每个进程都有自己的空间,那么全局变量存放在哪里?才能保证每个进程都能读取到。
...全文
185 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
beepbug 2006-06-15
  • 打赏
  • 举报
回复
每个进程都有各自的虚拟空间。全局是对进程来说的。一个进程里的全局变量,在其它进程里是无法看到的。
只能通过共享内存或其它手段。

----------------------------------------
我的BLOG:http://blog.csdn.net/beepbug/
hundlom 2006-06-05
  • 打赏
  • 举报
回复
使用共享内存保存信息。
x86 2006-06-05
  • 打赏
  • 举报
回复
你问的就是进程间通信的问题。看看unix/linux编程方面的书,关于进程间通信的方式。

简单的定义一个全局变量并不会被所有的进程共享,每个进程会有自己的变量副本,虽然名字一样,但是实际地址并不同。

如果是线程的话,可以共享全局变量。
tb01412 2005-11-22
  • 打赏
  • 举报
回复
不用共享内存的话,就用文件嘛
xhs1115 2005-11-21
  • 打赏
  • 举报
回复
我的意思是无论多个独立进程还是多个子进程,都需要用到一个全局变量,不用共享内存区能行吗?
yyy790601 2005-11-21
  • 打赏
  • 举报
回复
共享内存是一种进程间通信机制。不是必须的,更不可能是编译器非配的。

你问题中的多个进程没说清楚,是多个独立的进程,还是多个子进程。前者推荐用共享内存,后者...还是用共享内存吧。
xhs1115 2005-11-21
  • 打赏
  • 举报
回复
是由编译器将全局变量分配到共享内存区吗?还是要自己创建共享内存区后再定义全局变量?
wohow 2005-11-21
  • 打赏
  • 举报
回复
共享内存

23,121

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧