在我的程序中,我有如下代码

/* libname may be a relative path */

void loadLib(char const *libname) {

void *handle = dlopen(libname);

/* ... */

dlclose(handle);

}

在/ * .. * /中,我需要读取内存映射文件/ proc / self / maps,以查找映射到libname的虚拟内存地址,并且我还需要打开库来查找其中的某些部分.为此,我需要通过在各种地方搜索dlopen找到的绝对名称(例如,在ldconfig缓存文件中).如何收到该文件名?

这是我终于结束了(是的,这是C代码,尽管如此,C标记对于这个问题是有道理的,因为dlopen与C和C一起使用,我的问题符合两者,POSIX指定它为C.).

boost::shared_ptr dl;

if(void *handle = dlopen(libfile,RTLD_LAZY)) {

dl.reset(handle,&dlclose);

} else {

printdlerr();

return -1;

}

/* update sofile to be an absolute file name */

{

struct link_map *map;

dlinfo(dl.get(),RTLD_DI_LINKMAP,&map);

if(!map) {

return -1;

}

char *real = realpath(map->l_name,NULL);

if(!real)

return -1;

sofile.reset(real,&free);

}

libfile是相对/纯文件名.该地图将产生一个非纯文件名(即不是foo.so,但可能是./foo.so).之后,我使用realpath来获取最终的绝对路径名.它工作很好!

c语言 获取文件名的相对路径,c – 如何获取对应于给予dlopen的相对路径的绝对库文件名?...相关推荐

  1. Python语言学习:创建/删除文件/文件夹、获取当前文件/文件夹路径(系统环境路径/目录)、获取当前文件夹下的所有子文件路径等代码(os系列用法)实现之详细攻略

    Python语言学习:创建/删除文件/文件夹.获取当前文件/文件夹路径(系统环境路径/目录).获取当前文件夹下的所有子文件路径等代码(os系列用法)实现之详细攻略 目录 系统环境路径的设置 1.sys ...

  2. php获得服务器路径,PH获取当前url路径及服务器路径汇总 (url 获取当前路径 服务器路径),ph当前路径_PHP教程...

    PH获取当前url路径及服务器路径汇总 (url 获取当前路径 服务器路径),ph当前路径 以下是整理的一些, php中获取路径的小知识, 希望对你有所帮助! 1,$_SERVER["QUE ...

  3. java获取文件绝对路径_java 如何获取一个文件的绝对路径。。。

    你的位置: 问答吧 -> JSP -> 问题详情 java 如何获取一个文件的绝对路径... 例如 InputStream inStream=new FileInputStream(&qu ...

  4. python 如何获取文件路径_Python如何获取文件路径/目录

    一.获取文件路径实现 1.1 获取当前文件路径 import os current_file_path = __file__ print(f"current_file_path: {curr ...

  5. c++ 工作路径介绍及获取

    1)绝对路径:绝对路径是指目录下的绝对位置,直接到达目标位置,通常是从盘符开始的路径.例如:C:\windows\system32\cmd.exe  注意: 在不同系统的情况系 windows下是&q ...

  6. R语言使用pROC包绘制ROC曲线、获取最优阈值(threshold)及最优阈值对应的置信区间

    R语言使用pROC包绘制ROC曲线并获取最佳阈值(threshold)及最佳阈值对应的置信区间 #ROC曲线 ROC(receiver operating characteristic curve)接 ...

  7. jsp 获取项目路径,java获取项目路径

    1.  获取web服务器项目的真实物理路径 request.getSession().getServletContext().getRealPath("/"); 2.  相对路径的 ...

  8. PyQt5 技术篇-调用文件对话框获取文件、文件夹路径。文件对话框返回选中的多个文件路径

    下面是常用的4个文件对话框动作: QFileDialog.getExistingDirectory() # 返回选中的文件夹路径 QFileDialog.getOpenFileName() # 返回选 ...

  9. Python语言学习:在python中,如何获取变量的本身字符串名字而非其值/内容及其应用(在代码中如何查找同值的所有变量名)

    Python语言学习:在python中,如何获取变量的本身字符串名字而非其值/内容及其应用(在代码中如何查找同值的所有变量名) 目录

最新文章

  1. ipsec ***野蛮模式应用
  2. 最高65万美元!2021美大厂码农收入一览
  3. AWS S3宕机的启发: 云必须分散化
  4. anaconda下tensorflow安装遇到的问题记录及解决办法
  5. python颜色的字母代码,如何在python中更改特定印刷字母的颜色?
  6. Java 二维数组的初始化
  7. Webstorm常用快捷键备忘(Webstorm入门指南)
  8. x3m文件怎么转换成mp3_视频中的音频怎么单独提取出来转换成mp3格式
  9. mysql5.5的方言_mysql方言问题
  10. PowerDesigner新建模板
  11. 中文深度学习入门书:小白易入,课程、实战项目全有 | 五位导师联合出品
  12. 网管学习笔记-hybrid口配置
  13. 火狐浏览器中一个插件-httpfox
  14. STL之priority_queue 感觉讲的不错!!!呵呵
  15. PHP for windows VC9 VC6区别
  16. 均匀试验设计表格的问题
  17. 深度学习训练模型的硬件条件(点评)
  18. msvcr100.dll丢失的解决方法,哪种解决方法值得推荐?
  19. 【变色龙】app封装系统源码+互站在售封装系统
  20. EasyUI 日历实现日程提醒

热门文章

  1. QIIME 2教程. 13训练特征分类器TrainingFeatureClassifiers(2021.2)
  2. QIIME 2教程. 12数据筛选Filtering data(2021.2)
  3. 宏基因组蚂蚁森林合种——胡杨专车
  4. QIIME 2用户文档. 4人体各部位微生物组分析实战Moving Pictures(2018.11)
  5. Microbiome:宏基因组分箱流程MetaWRAP简介
  6. R语言ggplot2可视化时间序列数据:ggplot2可视化在时间轴上添加按月的箱图(boxplot)
  7. 什么是生存分析(survival analysis)?
  8. python使用fpdf生成pdf文件:配置多种语言字体写入多种文字
  9. python使用imbalanced-learn的SMOTENC方法进行上采样处理数据不平衡问题
  10. R计算赤信息指标(Akaike information criterion,AIC)