今天做一个模块儿需要加载可执行文件目录下的一个模块儿,需要获取到可执行文件的路径信息,查阅了一下资料挺简单的,这里做一下记录。
其中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++获取当前执行文件的路径