Linux C++获取当前执行文件的路径

Linux C/C++ 浅灬笑 3245℃ 0评论

今天做一个模块儿需要加载可执行文件目录下的一个模块儿,需要获取到可执行文件的路径信息,查阅了一下资料挺简单的,这里做一下记录。

其中STDString就是std::string

#include <string>
typedef std::string STDString;
STDString CDirverHelper::GetDriverPath()
{
  char szCurWorkPath[256];
  memset(szCurWorkPath,'\0',256);
  int nRet = readlink ("/proc/self/exe", szCurWorkPath , 256);
  if(nRet>256||nRet<0){
   return  "";
 }
//上面已经获取到了可执行文件的据对路径了(包含文件名),
//下面的for循环是为了去除路径中的文件名,如果需要的话
 for(int i=nRet;i>0;i--){
   if(szCurWorkPath[i]=='/' || szCurWorkPath[i]=='\\'){
          szCurWorkPath[i]='\0';
          break;
        }
  }
//这就是最终的文件路径,例如  "/usr/var"
  STDString szRet = szCurWorkPath;
  return szRet;
}

转载请注明:悠然品鉴 » Linux C++获取当前执行文件的路径

喜欢 (0)or分享 (0)
发表我的评论
取消评论

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址