首页 > 后端开发 > C++ > 如何可靠地确定 C/C 可执行文件的路径?

如何可靠地确定 C/C 可执行文件的路径?

Mary-Kate Olsen
发布: 2024-12-20 13:08:10
原创
659 人浏览过

How Can I Reliably Determine the Path of My C/C   Executable?

确定 C 中的可执行位置

在 C/C 中,可以使用多种方法来获取当前正在执行的程序的完整路径。一个常见的问题是主函数中提供的 argv[0] 参数并不总是提供完整的路径。为了解决这个问题,我们探索了几种解决方案:

基于 /proc 的 Unix 系统

在支持 /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)

没有 /proc 的基于 Unix 的系统

对于没有 /proc 的系统,可以采用几个后备:

  • 如果argv[0]以“/”开头,则代表绝对路径。
  • 如果argv[0] 包含“/”,将其附加到当前工作目录(假设尚未修改)。
  • 在 $PATH 中搜索目录以查找 argv[0] 可执行文件。

此外,建议验证可执行文件是否是符号链接并相对于其目录解析它(除了 /proc 方法Linux)。

Windows 系统

在 Windows 上,首选方法是:

  • GetModuleFileName(NULL, buf, bufsize)

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

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