ホームページ >バックエンド開発 >C++ >C/C 実行可能ファイルのパスを確実に特定するにはどうすればよいですか?

C/C 実行可能ファイルのパスを確実に特定するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-20 13:08:10626ブラウズ

How Can I Reliably Determine the Path of My C/C   Executable?

C での実行可能場所の決定

C/C では、現在実行中のプログラムのフルパスを取得することは、さまざまなアプローチを使用して実現できます。 。よくある懸念の 1 つは、main 関数で指定される argv[0] 引数が常に完全なパスを提供するとは限らないことです。この問題に対処するために、いくつかの解決策を検討します。

/proc を使用する Unix ベースのシステム

/proc をサポートする Unix システムでは、最も簡単で信頼性の高い方法は次のとおりです。 to:

  • Linux: readlink("/proc/self/exe", buf, bufsize)
  • FreeBSD: readlink("/proc/curproc/file", buf, bufsize)
  • Solaris: readlink("/proc/self/path/a.out", buf, bufsize)

/proc のない Unix ベースのシステム

/proc のないシステムでは、いくつかのフォールバックを使用できます:

  • argv[0] が「/」で始まる場合、絶対値を表します。 path.
  • argv[0] に「/」が含まれている場合は、それを現在の作業ディレクトリに追加します (変更されていないと仮定します)。
  • $PATH 内のディレクトリで argv[ 0] 実行可能ファイル。

さらに、実行可能ファイルがシンボリックリンクであるかどうかを確認することをお勧めします。

Windows システム

Windows では、次の方法が推奨されます:

  • GetModuleFileName(NULL, buf, bufsize)

以上がC/C 実行可能ファイルのパスを確実に特定するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。