本文介绍了我如何获得一个程序是从运行的目录?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
是否有一个平台无关和文件系统无关的方法来获得,其中程序是用C / C ++运行的目录的完整路径?不要与当前工作目录混淆。 (请除非他们是标准的像CLIB或STL不建议库)。
Is there a platform-agnostic and filesystem-agnostic method to obtain the full path of the directory from where a program is running using C/C++? Not to be confused with the current working directory. (Please don't suggest libraries unless they're standard ones like clib or STL.)
(如果没有平台/文件系统无关的方法,在Windows和Linux工作,具体的文件系统的建议也欢迎。)
(If there's no platform/filesystem-agnostic method, suggestions that work in Windows and Linux for specific filesystems are welcome too.)
推荐答案
下面是code,以获得完整路径执行程序:
Here's code to get the full path to the executing app:
Windows系统:
Windows:
int bytes = GetModuleFileName(NULL, pBuf, len);
if(bytes == 0)
return -1;
else
return bytes;
Linux的:
Linux:
char szTmp[32];
sprintf(szTmp, "/proc/%d/exe", getpid());
int bytes = MIN(readlink(szTmp, pBuf, len), len - 1);
if(bytes >= 0)
pBuf[bytes] = '\0';
return bytes;
这篇关于我如何获得一个程序是从运行的目录?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!