C で実行可能ファイルの場所を確認する方法
C/C では、現在実行中のプログラムの完全なパスを取得するのが困難な場合があります。特に、argv[0] を使用すると完全なパスが提供されない可能性があります。
/proc のない Unix システム
Unix システムに /proc ファイル システムがない場合は、次の戦略:
- argv[0] がスラッシュ (/) で始まるかどうかを確認します。これは絶対値を示します。 path.
- argv[0] にスラッシュ (/) が含まれている場合: 現在の作業ディレクトリ (cwd) に追加します。
- それ以外の場合は、で指定されたディレクトリで実行可能ファイル argv[0] を検索します。 $PATH 環境変数。
Unix システム/proc
/proc を備えた Unix システムの場合、次のいずれかのメソッドを使用できます:
- Linux: readlink("/proc/self/exe", buf) 、bufsize)
- FreeBSD: readlink("/proc/curproc/file", buf, bufsize)
- Solaris: readlink("/proc/self/path/a.out", buf, bufsize)
Windows システム
Windows では、GetModuleFileName を使用しますfunction:
GetModuleFileName(NULL, buf, bufsize);
ログイン後にコピー
追加の考慮事項
- 実行可能ファイルがシンボリックリンクではないことを確認し、必要に応じて解決してください。
- 呼び出しこの情報を正確にするために、プロセスは argv[0] を正しく設定する必要があります。
以上がC/C 実行可能ファイルのフルパスを取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。