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

如何跨平台获取程序在C/C中的目录?

Patricia Arquette
发布: 2024-12-22 17:03:10
原创
808 人浏览过

How Can I Get a Program's Directory in C/C   Across Different Platforms?

跨平台跨文件系统的C/C获取程序目录

很多场景下,需要确定程序所在的目录一个程序正在运行。此信息对于各种目的都很有价值,例如访问配置文件或日志记录。然而,以与平台无关和文件系统无关的方式获取此目录可能会带来挑战。

标准方法

不幸的是,标准 C/C 库确实不为此目的提供标准函数。对于特定于平台的解决方案,情况如下:

Windows

在 Windows 系统上,可以使用 GetModuleFileName 函数检索执行应用程序的完整路径.

char pBuf[256];
size_t len = sizeof(pBuf);
int bytes = GetModuleFileName(NULL, pBuf, len);
return bytes ? bytes : -1;
登录后复制

Linux

对于Linux系统中,可以利用readlink函数来读取指向正在执行的程序的符号链接

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板