Technology

Linux & UNIX 共享库 二

Linux & UNIX 共享库 二

@@ Tags: Linux;动态库 @@ Date: 2023-10-14 2126 动态加载共享库 当一个可执行文件开始运行之后,动态链接器会加载程序的动态依赖列表中的所有共享库,但有些时候延迟加载库是比较有用的,如只在需要的时候再加载一个插件。 这项功能由dlopen API实现,使得程序能够在运行时打开一个共享库,根据名字在库中搜索一个函数,然后调用这个函数。 * void *dlopen(const char *filename, int flags); * 函数打开一个共享库,返回一个供后续调用使用的句柄。 * flags 必须包含RTLD_LAZY、RTLD_NOW之一,以及零个或任意个其他标志位的组合。 * RTLD_LAZY Since glibc 2.1.1 * 惰性绑定,表示只有在引用符号的代码被执行的时候才解析符号,这只发生在函数引用,针对变量的引用则总是在库加载时立即绑定的。 * 如果LD_BIND_NOW环境变量存在时,则会忽略该标志位。
骑驴的柒零
C/C++脚本化: 探索篇

C/C++脚本化: 探索篇

使用C/C++等系统级语言开发业务逻辑效率太低? 这个功能用脚本写最多只要三天?我们对执行速度和资源又没啥要求…… 不知道过去你是否也有过这样的想法? 随着软件工程与计算机硬件的飞速发展,对于一些开发场景来说,系统级语言多少显得有点“大材小用”了,这迫使我们需要结合一门脚本语言相互配合,快速迭代产品。 本文主要描述通过脚本语言来扩展C/C++,而非为脚本语言写C/C++模块的应用场景。
骑驴的柒零