0
我需要從動態鏈接庫中獲取正在執行的C程序的絕對路徑,該鏈接庫使用clang
版本600.0.57在OSX 10.9.5上運行。OSX/Clang版本的__progname獲取絕對路徑的可執行文件?
我繼承了以下庫代碼
#include <stdio.h>
#include <unistd.h>
#include <string.h>
extern char *__progname ;
char *
getexecname()
{
return __progname ;
}
這是接近,但__progname
只返回基地的程序,而不是完整的路徑名。
argv[0]
不可用,因爲這是在庫中。 Linux/GCC顯然有__progname_full
,但似乎沒有OSX/clang
可用。 Linux風格的技巧,如readlink()
'/ proc/self/exe'不適用於Mac。
是否有一個伴侶宏__progname
,給出了可執行文件的完整路徑名,如果是的話是什麼?
另外,__progname
宏在哪裏定義和記錄?
感謝
你
完美,謝謝 – lcikgl