繁体   English   中英

动态库文件的全局变量加载到哪里?

[英]Where are the global variables of the dynamic library file loaded to?

理想情况下,每个共享库只加载到物理 memory 一次以保存 memory。 但是so文件中的data段和bss段是否在编译时合并到了可执行文件中呢? 或者每次用户程序更改值时,包含数据部分和 bss 部分的整个帧都会受到写时复制的影响?

当全局变量位于共享库与主程序中时,答案没有什么不同; 两者都以完全相同的方式共享。 它们是磁盘上程序映像(或 bss 的MAP_ANON页)的可写MAP_PRIVATE map,通常实现为对文件相应页面(或 bss 的通用零页)的写时复制 (COW) 引用.

暂无
暂无

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

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