在沒有/proc/Self/exe的情況下查找當(dāng)前可執(zhí)行文件的路徑在我看來,Linux很容易使用/proc/Self/exe。但是,我想知道是否有一種方便的方法可以在C/C+中找到具有跨平臺(tái)接口的當(dāng)前應(yīng)用程序的目錄。我見過一些項(xiàng)目與argv[0]混在一起,但看起來并不完全可靠。如果您必須支持MacOSX,它沒有/proc/,您會(huì)怎么做?使用#ifdefs隔離特定于平臺(tái)的代碼(例如NSBundle)?或者嘗試從argv[0]、$path和諸如此類推斷可執(zhí)行文件的路徑,這樣可能會(huì)在邊緣情況下發(fā)現(xiàn)bug?
3 回答

慕容708150
TA貢獻(xiàn)1831條經(jīng)驗(yàn) 獲得超4個(gè)贊
MacOSX: Linux: Solaris: FreeBSD: FreeBSD 如果
它有以下方案: readlink /proc/curproc/file
(FreeBSD默認(rèn)沒有profs) NetBSD: readlink /proc/curproc/exe
蜻蜓BSD: readlink /proc/curproc/file
窗戶: 帶著 hModule
=NULL
argv[0]
$PATH
.
_
"getenv("_")
- 3 回答
- 0 關(guān)注
- 1785 瀏覽
添加回答
舉報(bào)
0/150
提交
取消