首頁 > 後端開發 > C++ > 如何取得我的C/C程式在不同平台上的執行目錄?

如何取得我的C/C程式在不同平台上的執行目錄?

Susan Sarandon
發布: 2024-12-24 17:49:09
原創
918 人瀏覽過

How Can I Get the Execution Directory of My C/C   Program Across Different Platforms?

確定程式的目錄

在 C/C 中,取得程式運作目錄的完整路徑對於跨平台應用程式來說可能是一個挑戰。本文解決了這個問題,提供了適合不同平台和檔案系統的解決方案。

與平台無關的方法

不幸的是,沒有標準的 C/C 函式庫函數可以傳回程式的目錄路徑與平台無關的方式。但是,使用特定於作業系統的 API 可以實現此結果。

Windows

在 Windows 上,GetModuleFileName 函數可以擷取模組(執行檔)的完整路徑。

char pBuf[256];
size_t len = sizeof(pBuf);
int bytes = GetModuleFileName(NULL, pBuf, len);
if (bytes) {
    return bytes;
} else {
    return -1; // Error
}
登入後複製

Linux

對於Linux系統,readlink函數可以存取「/proc/self/exe」來決定程式的執行檔路徑。

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;
} else {
    return -1; // Error
}
登入後複製

請注意,這些方法特定於某些平台和檔案系統。如果您需要更全面的解決方案,請考慮使用跨平台程式庫,例如 Boost.filesystem 或 Qt。

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

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