返回顶部
首页 > 资讯 > 操作系统 >Linux动态库函数的详解
  • 130
分享到

Linux动态库函数的详解

详解库函数动态 2022-06-04 22:06:52 130人浏览 薄情痞子
摘要

Linux动态库函数的详解 加载动态库 void *dlopen(const char *filename, int flag); flag的可能值: RTLD_LAZY

Linux动态库函数的详解

加载动态库


void *dlopen(const char *filename, int flag);

flag的可能值:

RTLD_LAZY RTLD_NOW RTLD_GLOBAL RTLD_LOCAL RTLD_nodeLETE (since glibc 2.2) RTLD_NOLOAD (since glibc 2.2) RTLD_DEEPBIND

这些flag的具体含义可使用man查看

返回动态库中最近的一次错误


char *dlerror(void);

根据动态库句柄和函数名称,返回函数的地址


void *dlsym(void *handle, const char *symbol);

如果使用dlopen(NULL, <flag>)得到句柄,通过这个句柄可以查找所有函数符号,只要那个函数符号所在的dll在加载时指定了RTLD_GLOBAL

关闭动态库


int dlclose(void *handle);

根据函数地址,返回函数名称和其它信息

注意传入地址只要落在函数代码空间范围之内即可,不需要是函数的起始地址


int dladdr(void *addr, Dl_info *info);
 
typedef struct {
   const char *dli_fname;
   void *dli_fbase;   
   const char *dli_sname;
   void *dli_saddr;   
  } Dl_info;

构造函数和析构函数(这两个是属性,而不是函数)


__attribute__((constructor))
__attribute__((destructor))

例如:


__attribute__((constructor)) void before_main() 
{ 
    printf("before main/n"); 
} 
 
__attribute__((destructor)) void after_main() 
{ 
  printf("after main/n"); 
} 

如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

--结束END--

本文标题: Linux动态库函数的详解

本文链接: https://lsjlt.com/news/19332.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Linux动态库函数的详解
    Linux动态库函数的详解 加载动态库 void *dlopen(const char *filename, int flag); flag的可能值: RTLD_LAZY ...
    99+
    2022-06-04
    详解 库函数 动态
  • Linux静态函数库和动态函数库是什么
    这篇文章主要介绍“Linux静态函数库和动态函数库是什么”,在日常操作中,相信很多人在Linux静态函数库和动态函数库是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux静态函数库和动态函数库是什么...
    99+
    2023-06-28
  • linux怎么查看动态库函数
    在Linux系统中,可以通过以下命令查看动态库函数:1. 使用`nm`命令:`nm`命令可以列出目标文件或者动态库中的符号表,包括函...
    99+
    2023-09-22
    linux
  • Linux中如何使用动态库函数
    这篇文章将为大家详细讲解有关Linux中如何使用动态库函数,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Linux动态库函数的详解加载动态库void *dlopen(const&n...
    99+
    2023-06-09
  • C语言动态内存函数详解
    目录动态开辟空间的原因 1、malloc函数2、free函数3、calloc函数4、realloc函数总结动态开辟空间的原因 静态开辟空间是固定的,数组在申明的时候必须指定数组的长...
    99+
    2024-04-02
  • C++Cmake的构建静态库和动态库详解
    目录静态库和动态库的区别构建示例ADD_LIBRARY同时构建静态和动态库SET_TARGET_PROPERTIES动态库的版本号安装共享库和头文件使用外部共享库和头文件解决 :ma...
    99+
    2024-04-02
  • 【Linux】静态库和动态库
    Linux为什么不允许普通用户给目录建立硬链接呢? 系统层面上有.和…硬链接指向目录。假设我们是超级用户,允许给目录建立硬链接,给根目录建立硬链接,从根目录开始查找,当查找硬链接的时候就是根目录,这...
    99+
    2023-09-07
    linux 服务器 运维
  • Linux 动态库跨库调用 symbol lookup error原因详解
    1、起因 今天调试了一个程序,发现symbol lookup error,本想网上找一下方法解决算了怎料找了半天都没写根因的文章,好不容易找到一篇类似的,竟然要收费! 自此打算分析一下,symbol lookup error无非就是链接和库...
    99+
    2023-09-22
    linux 服务器
  • 详解Linux动态库生成与使用指南
    linux下动态库文件的文件名形如 libxxx.so,其中so是 Shared Object 的缩写,即可以共享的目标文件。 在链接动态库生成可执行文件时,并不会把动态库的代码复制到执行文件中,而是在执行文件中记录对动...
    99+
    2022-06-04
    Linux动态库生成 Linux动态库
  • 【Linux】动静态库
    文章目录 动静态库1. 设计库1. 静态库打包只有一个.o的压缩包报错1创建.o与.h的压缩包报错2第三方库的使用将头文件和库拷贝对应的系统路径 2. 动态库打包报错运行时报错找到动态...
    99+
    2023-09-02
    linux 运维 服务器
  • C语言的动态内存分配及动态内存分配函数详解
    目录mallocmalloc的使用:freecalloccalloc的使用:reallocrealloc的使用改进:realloc的另一种用法:常见的动态内存错误对空指针的解引用操作...
    99+
    2024-04-02
  • C++ 函数递归详解:动态规划中的递归
    摘要:递归调用在 c++++ 中通过调用自身的函数实现。斐波那契数列的递归求解需要三个组成部分:基础条件(n 小于等于 1)、递归调用(自身求解 f(n-1) 和 f(n-2))、递增/...
    99+
    2024-05-03
    c++ 递归
  • GCC 指令详解及动态库、静态库的使用方法
    目录一、GCC1.1 GCC 介绍1.2 安装 GCC1.3 GCC 工作流程1.3.1 一般使用流程1.3.2 详细的工作流程1.4 GCC 常用参数1.4.1 指定一个宏(-D)...
    99+
    2022-11-13
    GCC 指令 GCC使用动态库 GCC使用静态库
  • Linux动态库和静态库的示例分析
    今天就跟大家聊聊有关Linux动态库和静态库的示例分析,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。函数库分为静态库和动态库两种。创建Linux静态库和Linux动态库和使用它们在这...
    99+
    2023-06-16
  • PHP实现AJAX动态网页及相关函数详解
    目录AJAX1. XMLHttpRequest对象2. 发出请求的方法2.1XMLHttpRequest.open()2.2XMLHttpRequest.setRequestHead...
    99+
    2022-11-13
    php ajax动态网页 PHP动态网页 ajax与php交互
  • Linux静态库与动态库如何制作
    这篇“Linux静态库与动态库如何制作”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Linux静态库与动态库如何制作”文章吧...
    99+
    2023-06-27
  • PHP 内置函数库的详解
    php 内置函数库包含各种函数,用于简化代码和提高开发效率,包括:类型转换函数:将数据类型从一种转换为另一种。字符串操作函数:用于处理字符串,如查找、提取和计算长度。数学函数:执行常见数...
    99+
    2024-04-14
    php 函数库
  • Linux动态链接库的使用
    动态链接库与普通的程序相比而言,没有main函数,是一系列函数的实现。通过shared和fPIC编译参数生产so动态链接库文件。程序在调用库函数时,只需要连接上这个库即可。例如下面实现一个简单的整数四则运输的动态链接库,...
    99+
    2022-06-04
    Linux 动态链接库
  • Linux lseek函数的使用详解
    注:如果文章内容有误,请留言指出,谢谢合作。 名字 Name : lseek - reposition read/write file offset lseek函数的作用是用来重新定位文件读写的位移。 头文件以及函数声...
    99+
    2022-06-04
    Linux lseek函数 Linux lseek
  • Linux上的Go NumPy函数详解
    Go语言作为一门高性能的编程语言,与Python的NumPy库相比,在科学计算领域也有自己的优势。在Linux系统上,我们可以使用Go语言的NumPy函数来进行数学计算和数据处理。本文将详细介绍Linux上的Go NumPy函数,以及如何...
    99+
    2023-10-29
    numy 函数 linux
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作