首页 > 后端开发 > C++ > 如何获取 C/C 可执行文件的完整路径?

如何获取 C/C 可执行文件的完整路径?

Linda Hamilton
发布: 2024-12-16 21:13:22
原创
761 人浏览过

How Can I Get the Full Path of My C/C   Executable?

如何确定 C 中的可执行位置

在 C/C 中,获取当前正在执行的程序的完整路径可能具有挑战性。具体来说,使用 argv[0] 可能无法提供完整路径。

没有 /proc 的 Unix 系统

如果您的 Unix 系统缺少 /proc 文件系统,请考虑以下策略:

  • 检查 argv[0] 是否以斜杠 (/) 开头:这表示绝对值路径。
  • 如果 argv[0] 包含斜杠 (/):将其附加到当前工作目录 (cwd)。
  • 否则,在指定的目录中搜索可执行文件 argv[0] $PATH 环境变量。

Unix 系统/proc

对于具有 /proc 的 Unix 系统,您可以使用以下方法之一:

  • Linux: readlink("/proc/self/exe", buf , bufsize)
  • FreeBSD: readlink("/proc/curproc/file", buf, bufsize)
  • Solaris: readlink("/proc/self/path/a.out", buf, bufsize)

Windows 系统

在 Windows 上,使用 GetModuleFileName函数:

GetModuleFileName(NULL, buf, bufsize);
登录后复制

其他注意事项

  • 验证可执行文件不是符号链接,并在必要时解析它。
  • 调用进程应正确设置 argv[0] 以使此信息准确。

以上是如何获取 C/C 可执行文件的完整路径?的详细内容。更多信息请关注PHP中文网其他相关文章!

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