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

慕容708150
TA貢獻1831條經(jīng)驗 獲得超4個贊
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)注
- 1802 瀏覽
添加回答
舉報
0/150
提交
取消