首页 > 系统相关 >Linux下so库获取当前路径

Linux下so库获取当前路径

时间:2023-01-31 14:44:23浏览次数:53  
标签:info 路径 获取 so Linux include 可执行程序

之前尝试在so库内调用getpwd()来获取当前路径,但是实际上获取到的是调用so库的可执行程序的所在路径,因此改用dladdr()做一些间接处理来获取。

#include <dlfcn.h>
#include <string.h>
#include <string>
char* GetModuleCurPath(char* sCurPath)
{
       std::string wdir;
       Dl_info dl_info;
       dladdr((void*)GetModuleCurPath, &dl_info);
       
       std::string path(dl_info.dli_fname);
       wdir = path.substr(0, path.find_last_of('/') + 1);
       strcpy(sCurPath, wdir.c_str());
       
       return  sCurPath;
}

在so库内使用此函数,可以获取到当前so库所在目录(注:如果库放在可执行程序同级目录或子目录下调用,则得到路径是相对于可执行程序,否则得到从根目录起的绝对路径)。

标签:info,路径,获取,so,Linux,include,可执行程序
From: https://www.cnblogs.com/lidabo/p/17078906.html

相关文章

  • react native启动时报错Could not resolve com.facebook.react:react-native:+
    启动项目是报错大致如下:解决这个issue已经给出了解决方法https://github.com/facebook/react-native/issues/35210rn>=0.63rn官方为大于0.63的所有主要版本都准......
  • BUU Linux Labs
    LinuxLabs题目:2020年10月24日更新:目前所有靶机均能直接访问互联网。点击启动靶机可以启动一台安装好了LAMP的机器。但由于目前一个账户只能同时启动一台靶机,您如果......
  • Linux——MySQL主从复制读写分离
     主从复制用来保证数据的一致性和完整性 主从复制原理:主MySQL需要开启二进制日志保存用户对Mysql数据的操作。   从数据库监听主MySQL日志变化,发现更新复制日志......
  • Linux如何通过Apache httpd部署MantisBT
    一、Apachehttpd1.安装Apachehttpdyuminstallhttpd-y#安装httpdsystemctlstarthttpd#启动httpdsystemctlenablehttpd#配置自启动2.修改Apache服......
  • 根composer.json需要php^8.0,但您的php版本(7.4.27)不满足该要求
    我安装了php7.4,但当我在项目中写入composerinstall时,我看到了以下错误:Rootcomposer.jsonrequiresphp^8.0butyourphpversion(7.4.27)doesnotsatisfythatreq......
  • Java签名排序,实现php的ksort升序排序
    php这边是需要使用ksort排序生成签名平台要求通用签名生成步骤按照键字母进行正序排序(ASCII码从小到大排序【字典序】)#排序之后的参数按照key+value+key+val......
  • Linux下安装docker教程
    2023新一年啦,今年准备项目部署换成docker,所以现在开始上手在本地部署,本篇文章就是单纯的记录下docker的部署过程,希望能帮助下有需要的人 据了解,docker从17.03版......
  • 解决webstorm不能识别vue的@路径引用
    方式1: webstorm无法识别@符号问题[ctrl+左键无法跳转]解决:创建vue项目,打开项目后,再进入webstorm配置页面[否则没有webpack选项]ctrl+alt+s[进入设置页面]->langua......
  • lazarus在linux编写软件时需要注意的地方
    一、修改中文输入问题:1.尝试解决linux下Lazarus2.2.0版代码编辑器和SynEdit不支持中文输入的Bug2.修复lazarus在linux搜狗词组只能输入第一个字的Bug二、修正代码编辑器......
  • Linux常用命令-文本查看篇
    Linux常用命令中,除了cat还有很多其他用于文本查看的命令。本文将简单介绍一下这些文本查看的命令。全文本显示--catcat可能是常用的一个文本查看命令了,使用方法也很简单:c......