iis服务器助手广告广告
返回顶部
首页 > 资讯 > 操作系统 >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://www.lsjlt.com/news/19332.html(转载时请注明来源链接)

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

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 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+
    2022-11-12
  • 详解Linux动态库生成与使用指南
    linux下动态库文件的文件名形如 libxxx.so,其中so是 Shared Object 的缩写,即可以共享的目标文件。 在链接动态库生成可执行文件时,并不会把动态库的代码复制到执行文件中,而是在执行文件中记录对动...
    99+
    2022-06-04
    Linux动态库生成 Linux动态库
  • Linux 动态库跨库调用 symbol lookup error原因详解
    1、起因 今天调试了一个程序,发现symbol lookup error,本想网上找一下方法解决算了怎料找了半天都没写根因的文章,好不容易找到一篇类似的,竟然要收费! 自此打算分析一下,symbol lookup error无非就是链接和库...
    99+
    2023-09-22
    linux 服务器
  • C++Cmake的构建静态库和动态库详解
    目录静态库和动态库的区别构建示例ADD_LIBRARY同时构建静态和动态库SET_TARGET_PROPERTIES动态库的版本号安装共享库和头文件使用外部共享库和头文件解决 :ma...
    99+
    2022-11-13
  • C语言的动态内存分配及动态内存分配函数详解
    目录mallocmalloc的使用:freecalloccalloc的使用:reallocrealloc的使用改进:realloc的另一种用法:常见的动态内存错误对空指针的解引用操作...
    99+
    2022-11-13
  • Linux上的Go NumPy函数详解
    Go语言作为一门高性能的编程语言,与Python的NumPy库相比,在科学计算领域也有自己的优势。在Linux系统上,我们可以使用Go语言的NumPy函数来进行数学计算和数据处理。本文将详细介绍Linux上的Go NumPy函数,以及如何...
    99+
    2023-10-29
    numy 函数 linux
  • Linux lseek函数的使用详解
    注:如果文章内容有误,请留言指出,谢谢合作。 名字 Name : lseek - reposition read/write file offset lseek函数的作用是用来重新定位文件读写的位移。 头文件以及函数声...
    99+
    2022-06-04
    Linux lseek函数 Linux lseek
  • PHP实现AJAX动态网页及相关函数详解
    目录AJAX1. XMLHttpRequest对象2. 发出请求的方法2.1XMLHttpRequest.open()2.2XMLHttpRequest.setRequestHead...
    99+
    2022-11-13
    php ajax动态网页 PHP动态网页 ajax与php交互
  • 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从入门到精通】动静态库的原理与制作详解
         本篇文章主要是围绕动静态库的原理与制作进行展开讲解的。其中涉及到了inode的概念引入和软硬连接的讲解。会结合实际操作对这些抽象的概念进行解释,希望会对你有所帮助。 文章目录 一、inode 概念 二、软硬链接 2...
    99+
    2023-09-12
    linux 运维
  • Linux动态库和静态库的示例分析
    今天就跟大家聊聊有关Linux动态库和静态库的示例分析,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。函数库分为静态库和动态库两种。创建Linux静态库和Linux动态库和使用它们在这...
    99+
    2023-06-16
  • Python+eval函数实现动态地计算数学表达式详解
    目录Python 的 eval()第一个参数:expression第二个参数:globals第三个参数:locals用 eval() 计算表达式布尔表达式数学表达式通用表达式Pyth...
    99+
    2022-11-11
  • C语言动态数组详解
    目录内存分配函数malloc calloc realloc free内存操作函数 memset memcpy memmove二维动态数组的建立和释放总结内存分配函数malloc ca...
    99+
    2022-11-12
  • C++赋值函数+移动赋值函数+移动构造函数详解
    目录左值引用和右值引用左值与右值左右值的切换左值引用:将左值绑定在引用上常量左值引用和非常量左值引用右值引用:将右值绑定在引用上常量右值引用和非常量右值引用移动构造函数赋值和移动赋值...
    99+
    2022-11-13
  • spring mvc中的@PathVariable动态参数详解
    目录springmvc@PathVariable动态参数springmvc是如何做到根据参数名动态绑定参数的?反射获取参数名-parameters参数-g参数ASMSpringMVC...
    99+
    2022-11-12
  • 详解C++中OpenSSL动态链接库的使用
    在上一篇文章 OpenSSL动态链接库源码安装 中我们介绍了如何在Windows和Linux环境中编译OpenSSL动态链接库,这篇文章我们将介绍如何在C代码中引用Open...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作