首页 >后端开发 >C++ >跨平台C/C程序如何获取执行目录?

跨平台C/C程序如何获取执行目录?

DDD
DDD原创
2024-12-21 02:48:12718浏览

How Can I Get the Execution Directory in a Cross-Platform C/C   Program?

跨平台环境下如何确定执行目录

在编程领域,确定程序的执行目录是一项至关重要但依赖于平台和文件系统的任务。 C 和 C 开发人员经常寻求超越这些依赖关系的通用解决方案。

虽然可能没有完全与平台无关的方法,但这里有针对 Windows 和 C 语言的定制解决方案Linux:

Windows:

#include <windows.h>

int main() {
    char pBuf[256];
    size_t len = sizeof(pBuf);
    int bytes = GetModuleFileName(NULL, pBuf, len);
    printf("Execution directory: %s", pBuf);
    return 0;
}

Linux:

#include <unistd.h>
#include <string.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] = '';
    printf("Execution directory: %s", pBuf);
    return 0;
}

以上是跨平台C/C程序如何获取执行目录?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn