2015-12-08 60 views
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宏在哪裏定義和記錄?

感謝

回答

1

威爾_NSGetExecutablePath工作?

+0

完美,謝謝 – lcikgl