在没有/proc/Self/exe的情况下查找当前可执行文件的路径在我看来,Linux很容易使用/proc/Self/exe。但是,我想知道是否有一种方便的方法可以在C/C+中找到具有跨平台接口的当前应用程序的目录。我见过一些项目与argv[0]混在一起,但看起来并不完全可靠。如果您必须支持MacOSX,它没有/proc/,您会怎么做?使用#ifdefs隔离特定于平台的代码(例如NSBundle)?或者尝试从argv[0]、$path和诸如此类推断可执行文件的路径,这样可能会在边缘情况下发现bug?
3 回答
慕容708150
TA贡献1831条经验 获得超4个赞
MacOSX: Linux: Solaris: FreeBSD: FreeBSD 如果
它有以下方案: readlink /proc/curproc/file
(FreeBSD默认没有profs) NetBSD: readlink /proc/curproc/exe
蜻蜓BSD: readlink /proc/curproc/file
窗户: 带着 hModule
=NULL
argv[0]
$PATH
.
_
"getenv("_")
- 3 回答
- 0 关注
- 1750 浏览
添加回答
举报
0/150
提交
取消