[英]Getting module name and process name in LINUX C++
我有一個共享庫,其中包含我想移植到 linux 的 2 個方法(當然還有其他方法):
GetProcessName() - 應該獲取可執行文件名稱或路徑(兩者都可以)
GetModuleName() - 應返回運行代碼的模塊的名稱(dll 或 exe)。
在 Windows 環境中,我使用GetModuleFileName和兩種方法的不同變體。
我已經看到了很多獲取進程名稱的解決方案,但其中大多數看起來有點像 Hacky。
而且我還沒有找到獲取模塊名稱的解決方案。
linux 中是否有類似的功能?
我該如何實施它們?
由於存在一些混淆,以下是獲取當前函數的“模塊”數據的兩個步驟。
__builtin_return_address(0)
的小函數來獲取當前函數。 另一種方法是在foo()
使用&foo
。dladdr
,傳遞當前函數的地址。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.