首页 > 系统相关 >Linux下获取当前程序的绝对路径

Linux下获取当前程序的绝对路径

时间:2022-11-03 18:58:39浏览次数:43  
标签:exe string self 程序 绝对路径 获取 Linux proc

Linux下获取当前程序的绝对路径

阿拉懒神灯 2020-02-18 原文

在Linux开发应用时,我们常常需要在程序中获取当前程序绝对路径,我们可以通过readlink读取符号链接/proc/self/exe进行获取,这个符号链接代表当前程序,它的源路径就是当前程序的绝对路径,比如我们在终端下键入命令:

  1. [yangye@localhost ~]$ ls -ld /proc/self/exe
  2. lrwxrwxrwx 1 yangye yangye 02月1816:05/proc/self/exe ->/usr/bin/ls

可以看到/proc/self/exe指向ls命令的绝对路径。

ok,清楚原理后接下就是完整代码:

  1. #include<string>
  2. #include<limits.h>
  3. #include<sys/types.h>
  4.  
  5. string getExePath()
  6. {
  7. char result[PATH_MAX];
  8. ssize_t count = readlink("/proc/self/exe", result, PATH_MAX );
  9. string exePath =string( result,(count >0)? count :0);
  10. size_t pos = exePath.find_last_of("\\/");
  11. return(string::npos == pos)
  12. ?""
  13. : exePath.substr(0, pos);
  14. }

上面代码中最终返回的是程序所在目录,如果需要程序绝对路径时直接返回exePath即可不用再做字符串分割。

 

 

标签:exe,string,self,程序,绝对路径,获取,Linux,proc
From: https://www.cnblogs.com/zxdplay/p/16855495.html

相关文章

  • Linux映射到window路径
    一、linux文件夹映射到windows**安装sambayuminstall-ysamba将root用户添加到samba中smbpasswd-aroot设置selinux:(或者关闭selinux)chcon-tsamba_share_t/home/w......
  • Linux中tac命令倒序查询日志
    cat命令是正序开始查询日志比如:catxxx.log|grep"sssdsd"如果日志文件比较大,那么会很慢或者直接出错 可以使用tac命令,这个是cat反过来写tacxxx.log|grep"sssdsd"这样就......
  • IDEA用Java创建删除文件,获取文件相关信息,创建删除目录操作
     目录   一、Java创建文件的三种方式二、Java删除文件三、Java获取文件相关信息四、创建删除目录操作五、Java删除目......
  • 玩转 Gitea | 在 Linux 上安装预编译的 Gitea 程序,配置 systemd 管理服务
    这是一篇介绍手动安装Gitea服务器的用户指南。与之前的容器安装方式相比,对系统资源的要求更低,因此也可以在低功耗的嵌入式Linux设备上配置安装。您可以使用systemd作......
  • Django_获取api接口的传参
    当参数为form-data或者x-www-form-urlencoded类型时,使用request.POST获取到参数获取参数方式request.POST.get('username')当参数为raw类型时,使用request.body获取......
  • 《linux内核精髓》-记录-资源管理
    《linux内核精髓》-记录-资源管理资源管理资源管理本节主要内容:通过cgroup和namespace实现容器功能容器cgroup:cgroup是将任意进程进行分组化管理的linux内核功能。c......
  • linux java 初始环境配置
    linux初始环境配置 1.设置IP查看虚拟机ip地址:ipaddr 修改ip地址Vi/etc/sysconfig/network~scrips/ifcfg-ens33(不一定是33动态的)BOOTPROTO=static在......
  • Java获取小数点后几位
    学习中遇见保留1小数点后位,选择有四种方法:方法:1、用format方法,语法“String.format("%.2f",数值)”;2、用DecimalFormat的format方法;3、用setScale方法进行四舍五入;4、用set......
  • Linux终端颜色个性化设置技巧
    https://www.linuxprobe.com/ubuntu-linux-terminal.htmlhttps://blog.csdn.net/lei_qi/article/details/121694489......
  • 07-jmeter-获取数据库返回的手机号码进行登录
    一、jmeter工具如何连接数据库-->请看 06-jmeter-使用jmeter工具初访数据库1、获取数据库中5条数据-->用Variablenames接收数据库返回值 2、添加ForEach控制器利......