#include <dlfcn.h>
//定义该函数为了dladdr获取符号信息
void fun1()
{
} Dl_info info;
//dladdr获取某个地址的符号信息
int rc = dladdr((void*)fun1, &info); //(void *)转化是关键步骤
char dir[100];
strcpy(dir, info.dli_fname); //info.dli_fname存的是包含文件名的路径.

dladdr的原型:

int dladdr(void *address, Dl_info *dlip); //这个dladdr这个函数只对动态链接程序起作用。

dlip 是指向Dl_info 结构的指针。该结构必须由用户分配。如果指定的address 在其中一个加载模块的范围内,则
结构成员由dladdr() 设置。Dl_info 结构包含下列成员:
struct {
const char *dli_fname;  //这个路径是包含这个共享对象地址的文件路径,以我的理解就是调用这个函数的文件
void *dli_fbase;
const char *dli_sname;
void *dli_saddr;
size_t dli_size; /* ELF only */
int dli_bind; /* ELF only */
int dli_type;
};

参考链接:

1.动态链接库加载拾遗&dladdr函数使用:https://www.jianshu.com/p/1ef4460b63db

2.https://blog.csdn.net/dragon101788/article/details/18673323

利用dladdr来获得so自身的路径的更多相关文章

  1. cad.net 利用win32api实现不重复打开dwg路径的文件夹(资源管理器)

    这里地址的方法也是可用的,但是net3.5不能使用 为此我选择使用win32api的方式来遍历当前桌面所有资源管理器 /// <summary> /// 不重复打开dwg路径的资源管理器 ...

  2. 利用Python分析GP服务运行结果的输出路径 & 实现服务输出路径的本地化 分类: Python ArcGIS for desktop ArcGIS for server 2015-08-06 19:49 3人阅读 评论(0) 收藏

    最近,一直纠结一个问题:做好的GP模型或者脚本在本地运行,一切正常:发布为GP服务以后时而可以运行成功,而更多的是运行失败,甚至不能知晓运行成功后的结果输出在哪里. 铺天盖地的文档告诉我,如下信息: ...

  3. Android 常用工具类之SPUtil,可以修改默认sp文件的路径

    参考: 1. 利用Java反射机制改变SharedPreferences存储路径    Singleton1900 2. Android快速开发系列 10个常用工具类 Hongyang import ...

  4. java路径中的空格问题(转)

    java路径中的空格问题 1. URLTest.class.getResource("/").getPath(); URLTest.class.getResource(" ...

  5. java项目获取根路径(web项目和application项目的区分)

    Java项目中经常要读取配置文件,涉及到读取配置文件的地方,就会要读定位文件的路径.因此,在项目如何正确获取文件路径尤为关键. 根据不同的java项目,在获取文件路径时候有一些 小区别 测试环境:E: ...

  6. hdfs 路径不支持‘:’

    hdfs 路径不支持‘:’,但Linux支持. -put: Pathname /public/platform/control_center/file_center/weiflow/core-user ...

  7. 工控随笔_07_西门子_WinCC利用命令行实现操作log日志

    在WinCC中可以通过报警纪录来实现操作员纪录,这个需要WinCC的消息系统进行组态和配置. 利用消息系统进行实现上诉功能不但复杂而且时间久啦也不方便查询.那么有没有一种简单的方法来 实现操作员纪录呢 ...

  8. Microsoft Tech Summit 2018 课程简述:利用 Windows 新特性开发出更好的手绘视频应用

    概述 Microsoft Tech Summit 2018 微软技术暨生态大会将于10月24日至27日在上海世博中心举行,这也会是国内举办的最后一届 Tech Summit,2019 年开始会以 Mi ...

  9. vue的 v-for 循环中图片加载路径问题

    先看一下产品需求,如下图所示, 产品要求图片和它的名称一一对应,本来是非常简单的需求,后台直接返回图片路径和名称,前台直接读取就可以了,但是我们没有存储图片的服务器,再加上是一个实验性的需求,图片需要 ...

随机推荐

  1. selenium+python-unittest多线程执行用例

    前言 假设执行一条脚本(.py)用例一分钟,那么100个脚本需要100分钟,当你的用例达到一千条时需要1000分钟,也就是16个多小时...那么如何并行运行多个.py的脚本,节省时间呢?这就用到多线程 ...

  2. Consideration about improving mathematics study

    In this article, I’ll present my ideas about how to improve mathematics study, which are the forewor ...

  3. .net OADate 转javascript的Datetime js 5位 日期 转换

    以下是将.net的OADate转成javascript的DateTime函数. 其中参数oadate是.net那里传过来的UTC时间的double.记得 一定是UTC时间. .net Double o ...

  4. 关闭IIS开启自启

    关闭IIS开启自启 win+R输入services.msc 找到服务名称为World Wide Web Publishing Service 双击停止,右键禁用

  5. Python WMI获取Windows系统信息

    #!/usr/bin/env python # -*- coding: utf-8 -*- #http://www.cnblogs.com/liu-ke/ import wmi import os i ...

  6. windows应用程序框架及实例

    应用程序框架:同一类型应用程序的结构大致相同,并有很多相同的源代码,因此可以通过一个应用程序框架AFX(Application FrameWorks)编写同一类型应用程序的通用源代码. 主要向导: D ...

  7. NOIP2009 t3 最优贸易

    题目传送门:洛谷P1073 dalao们都用的tarjan啊拓扑排序啊之类的玩意儿,我这个蒟蒻不会,只想到了极其暴力的分层图最短路 设三个状态 0表示没有发生任何买卖的情况 1表示买了没有卖的情况 2 ...

  8. 封装的head

    //获取浏览器和版本号var userAgent=window.navigator.userAgent, rMsie=/(msie\s|trident.*rv:)([\w.]+)/, rFirefox ...

  9. GMA Round 1 新年的复数

    传送门 新年的复数 已知$\left\{\begin{matrix}A>B>0\\ AB=1\\ (A+B)(A-B)=2\sqrt{3}\end{matrix}\right.$ 求$(A ...

  10. (96)Wangdao.com_第二十九天_表单事件

    表单事件 input 事件        select 事件        change 事件        invalid 事件        reset 事件         submit 事件 ...