dlsym

news/2025/3/19 13:35:39/

dlopen()函数和dlsym()函数

1 dlopen()函数

用于打开一个.so库,原型如下:

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

    pthread_mutex_lock(&dl_lock);
    ret = find_library(filename);
    if (unlikely(ret == NULL)) {
        set_dlerror(DL_ERR_CANNOT_LOAD_LIBRARY);
    } else {
        ret->refcount++;
    }
    pthread_mutex_unlock(&dl_lock);
    return ret;
}

根据filename打开一个库,成功并返回一个句柄,出现错误返回为NULL。

其中的flag:

  RTLD_LAZY 暂缓决定,等有需要时再解出符号 resolve undefined symbols as code from the dynamic library is executed

  RTLD_NOW 立即决定,返回前解除所有未决定的符号。 resolve all undefined symbols before dlopen() returns and fail if this     cannot be done

  RTLD_LOCAL

  RTLD_GLOBAL 允许导出符号

  RTLD_GROUP

  RTLD_WORLD

2 dlsym()函数

原型:

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

根据上面dlopen()函数放回的指针,获取函数(symbol)的地址,void*指向函数的地址,供接下来的调用。

http://www.ppmy.cn/news/805097.html

相关文章

关于dl dt dd

HTML <dl> 元素 &#xff08;或 HTML 描述列表元素&#xff09;是一个包含术语定义以及描述的列表&#xff0c;通常用于展示词汇表或者元数据 (键-值对列表)。在 HTML5 之前&#xff0c; <dl> 被大家以定义列表所熟知。用法&#xff1a; 单条术语和描述&#xff…

DDMMSS.SS转为DD

有时候甲方会给我们一些坐标&#xff0c;但是在arcgis中是无法直接显示的 这是因为该格式是DDMMSS.SS的格式&#xff0c;而arcgis支持的是DD格式的&#xff0c;其中dd单位是度&#xff0c;mm单位是分&#xff0c;ss.ss单位是秒 所以要在arcgis中显示我们需要将其转换为DD的格式…

dd/mm/yy转化yymmdd

输入&#xff1a;2/7/2019 输出&#xff1a;20190702 方法很笨&#xff0c;欢迎吐槽 #include<cstdio> #include<cstring> int main() {char str[100];char dd[10] {};char mm[10] {};char yy[10] {};gets(str);int i;int j 0;int k 0;int n strlen(str);f…

MvDGNMF

题目&#xff1a;Deep graph regularized non-negative matrix factorization for multi-view clustering 一. 创新点 这篇文章主要是基于一个叫做Deep Semi-NMF的方法。传统的NMF是用X算出H&#xff0c;而该方法把H算出来以后&#xff0c;会把H当作新的原始变量&#xff0c;…

dl dt dd 用法

释义&#xff1a; dl: Definition List (定义列表) dt: Definition Term &#xff08;定义项&#xff09; dd: Definition Description &#xff08;定义描述&#xff09; 作用&#xff1a; dl表示一个定义列表 dt表示一个定义的名称&#xff0c;可以理解为词典…

关于css 中的dl dt dd

< dl>< /dl>用来创建一个普通的列表, < dt>< /dt>用来创建列表中的上层项目&#xff0c; <dd>< /dd>用来创建列表中最下层项目&#xff0c; < dt>< /dt>和< dd>< /dd>都必须放在< dl>< /dl>标志对…

【JokerのZYNQ7020】DDS_Compiler。

软件环境&#xff1a;vivado 2019.1 硬件平台&#xff1a;XC7Z020 对于自产生的正余弦数据源最常用的一般有两种办法&#xff0c;一种是通过matlab生成coe存到ram里&#xff0c;使用的时候播出来&#xff0c;另一种就是通过自带的DDS核来产生&#xff0c;今天就来说说DDS_Compi…