程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何在C中找到可执行文件的位置?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决如何在C中找到可执行文件的位置??

开发过程中遇到如何在C中找到可执行文件的位置?的问题如何解决?下面主要结合日常开发的经验,给出你关于如何在C中找到可执行文件的位置?的解决方法建议,希望对你解决如何在C中找到可执行文件的位置?有所启发或帮助;

总结一下:

  • 在Unix上,/proc真正可行的方法是:

    • readlink("/proc/self/exe", buf, bufsizE) (linux)

    • readlink("/proc/curproc/file", buf, bufsizE) (FreeBSD)

    • readlink("/proc/self/path/a.out", buf, bufsizE) (Solaris)

  • 在没有Unix的Unix上/proc(即,如果以上失败):

    • 如果argv [0]以“ /”(绝对路径)开头,则为路径。

    • 否则,如果argv [0]包含“ /”(相对路径),则将其附加到cwd(假设尚未更改)。

    • 否则,在目录中搜索$PATH可执行文件argv[0]

之后,检查可执行文件是否实际上不是符号链接可能是合理的。如果解决,则相对于symlink目录。

/ proc方法中不需要此步骤(至少对于linux)。proc符号链接在那里直接指向可执行文件。

请注意,取决于调用过程的argv[0]正确设置。在大多数情况下是正确的,但是有时调用进程不能被信任(例如setuID可执行文件)。

  • 在windows上:使用 Getmodulefilename(NulL, buf, bufsizE)

解决方法

C / C ++中是否可以找到当前已执行程序的位置(完整路径)?

(问题argv[0]在于它没有给出完整的路径。)

大佬总结

以上是大佬教程为你收集整理的如何在C中找到可执行文件的位置?全部内容,希望文章能够帮你解决如何在C中找到可执行文件的位置?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。