首页 > 系统服务 > 详细

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

时间:2020-02-18 16:27:34      阅读:55      评论:0      收藏:0      [点我收藏+]

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

[yangye@localhost ~]$ ls -ld /proc/self/exe
lrwxrwxrwx 1 yangye yangye 0 2月  18 16:05 /proc/self/exe -> /usr/bin/ls

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

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

#include <string>
#include <limits.h>
#include <sys/types.h>

string GTFEngineHost::getExePath()
{
  char result[PATH_MAX];
  ssize_t count = readlink( "/proc/self/exe", result, PATH_MAX );
  string exePath = string( result, (count > 0) ? count : 0 );
  size_t pos = exePath.find_last_of("\\/");
  return (string::npos == pos)
           ? ""
           : exePath.substr(0, pos);
}

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

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

原文:https://www.cnblogs.com/blackwatch1206/p/12326661.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!