問題:
プログラムが保存されているディレクトリのフルパスを決定する実行は、多くのプログラミング シナリオにおける基本的なタスクです。ただし、さまざまなプラットフォームやファイル システムにわたってこれを実現することは、システム固有の実装により困難になる場合があります。このプラットフォームに依存せずにこのことを実現するための簡潔で効率的な方法を提供していただけますか?
解決策:
オペレーティング システムによっては、これを取得するための個別のアプローチがあります。情報:
#include <windows.h> int main() { char pBuf[256]; size_t len = sizeof(pBuf); int bytes = GetModuleFileName(NULL, pBuf, len); return bytes ? bytes : -1; }
#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 中国語 Web サイトの他の関連記事を参照してください。