繁体   English   中英

共享库中的全局变量

[英]Global variable in shared library

您知道如何在共享库中共享全局变量吗?

我对此有疑问。 我在头文件中声明

int a;

我将在一些C文件中使用它,而不是将其编译为共享库。 但是文件中A的更新似乎没有被共享,并且变量的更改无效。

我在某篇文章中读到这是因为未共享数据段,但我需要它。 你知道怎么做吗?

谢谢!

我在某篇文章中读到这是因为未共享数据段,但我需要它。 你知道怎么做吗? 数据段确实没有共享。 抱歉,这是这样的。

许多现代操作系统将共享库加载到内存中,以便使用它的程序可以读取其内存位置的值,直到执行写操作为止。

这样做时,操作系统可能会应用COW (写时复制)策略,并专门为尝试修改它的程序的使用创建库内存的精确副本。

因此,其他程序看不到第一个程序所做的任何更改。

如果要在进程之间共享内存,则必须引用操作系统。 例如,Linux使用共享内存 IPC,并且必须使用其API来实现所需的功能。 不要气our,这很简单。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM