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

如何跨平台取得C/C程式的執行目錄?

Patricia Arquette
發布: 2025-01-04 00:54:39
原創
989 人瀏覽過

How Can I Get a C/C   Program's Execution Directory Cross-Platform?

取得C/C中程式的運作目錄

問題:

確定程式所在目錄的完整路徑執行程式是許多程式設計場景中的一項基本任務。然而,由於特定於系統的實現,跨各種平台和檔案系統實現這一點可能具有挑戰性。您能否提供一種簡潔有效的方法來實現與平台無關的此操作?

解決方案:

根據作業系統的不同,有不同的方法來擷取此內容information:

Wi ndows:

#include <windows.h>

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

Linux:

#include <string.h>
#include <unistd.h>

int main() {
  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中文網其他相關文章!

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