c - 两个程序链接到动态链接库

标签 c dynamic dll linker shared-libraries

我仍然是 C 语言的菜鸟,所以我有一个关于链接的问题。 我们有两个程序“A”和“B”,它们链接到动态链接库“C”。

现在我们开始程序“A”和“B”。

“C”现在发生了什么。是两个程序都加载一次,还是每个程序加载两次?

什么是,当程序 B 是 Python 程序时,它使用了外部函数接口(interface)?

最佳答案

这完全取决于操作系统,但对于例如Linux 或 Windows 共享库只会加载一次,但会被映射 两次。使用共享库的每个进程都将映射库,但这些映射都指向相同的单个加载库。

映射是在每个进程的基础上完成的,进程做什么或是什么并不重要(如果它是您编写的程序、Python 解释器或完全不同的东西)。

关于c - 两个程序链接到动态链接库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33625539/

相关文章:

c - 蓝牙 socket 收不到数据包

c - Perl 的文件测试运算符的 C 等价物是什么?

c - 关于我的 C 编程代码、编译器问题的问题

c# - 使用 LinFu 生成动态代理

c - 使用一个命令释放所有 malloc() 创建的指针?

在c中创建动态数组

java - ivy 解决动态依赖

delphi - 将 Windows 主题应用到 Office Com 加载项

c# - 为什么我宁愿使用 native dll 或 com 服务器从 C# 调用 Delphi 代码?

database - Unity3D 在 Windows Phone 8 (WP8) Build 中使用数据库的问题