问题:
确定程序所在目录的完整路径执行是许多编程场景中的一项基本任务。然而,由于特定于系统的实现,跨各种平台和文件系统实现这一点可能具有挑战性。您能否提供一种简洁有效的方法来实现与平台无关的此操作?
解决方案:
根据操作系统的不同,有不同的方法来检索此内容information:
#include <windows.h> int main() { char pBuf[256]; size_t len = sizeof(pBuf); int bytes = GetModuleFileName(NULL, pBuf, len); return bytes ? bytes : -1; }
#include <string.h> #include <unistd.h> int main() { char pBuf[256]; size_t len = sizeof(pBuf); int bytes = MIN(readlink("/proc/self/exe", pBuf, len), len - 1); if (bytes >= 0) pBuf[bytes] = ''; return bytes; }
这些方法依赖低级系统函数直接从操作系统获取路径,确保与平台无关的功能。
以上是如何跨平台获取C/C程序的执行目录?的详细内容。更多信息请关注PHP中文网其他相关文章!