簡體   English   中英

gcc 共享庫初始化程序 function 訪問當前可執行文件名

[英]gcc share library initializer function access to current executable name

我有一個需要運行構造函數 function 的共享庫(Linux 上的 gcc,用 C++ 編寫)。 這個構造函數 function 需要處理一個配置文件,該配置文件可能與可執行文件位於同一目錄或另一個預定義位置。 換句話說,我需要從庫構造函數 function 中知道argv[0]的值。 這樣做的正確方法是什么?

static void __attribute__((constructor)) mylib_init()
{
   // need access to config file which is in the same directory as executable
}

在 gcc 的構造函數中獲取argv的簡單方法。

但是,在 Linux 上,您可以讀取/proc/self/cmdline並獲取命令名稱。 您可以從中找出您感興趣的目錄。

/proc/self/cmdline將包含所有 arguments,包括命令,由 null 字符分隔。

看起來glibc通過extern const char *__progname_full; 看這里

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM