首頁 > 後端開發 > C++ > 如何跨平台取得程式在C/C中的目錄?

如何跨平台取得程式在C/C中的目錄?

Patricia Arquette
發布: 2024-12-22 17:03:10
原創
826 人瀏覽過

How Can I Get a Program's Directory in C/C   Across Different Platforms?

跨平台跨檔案系統的C/C取得程式目錄

很多場景下,需要確定程式所在的目錄一個程式正在執行。此資訊對於各種目的都很有價值,例如存取設定檔或日誌記錄。然而,以與平台無關和檔案系統無關的方式取得此目錄可能會帶來挑戰。

標準方法

不幸的是,標準 C/C 函式庫確實不為此目的提供標準函數。對於平台特定的解決方案,情況如下:

Windows

在 Windows 系統上,可以使用 GetModuleFileName函數擷取執行應用程式的完整路徑.

char pBuf[256];
size_t len = sizeof(pBuf);
int bytes = GetModuleFileName(NULL, pBuf, len);
return bytes ? bytes : -1;
登入後複製

Linux

對於Linux系統中,可以利用readlink函數來讀取指向正在執行的程式的符號連結

char pBuf[256];
size_t len = sizeof(pBuf);
int bytes = MIN(readlink("/proc/self/exe", pBuf, len), len - 1);
if (bytes >= 0)
    pBuf[bytes] = '';
return bytes;
登入後複製

以上是如何跨平台取得程式在C/C中的目錄?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板