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

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

Susan Sarandon
リリース: 2024-12-14 19:21:12
オリジナル
421 人が閲覧しました

How Can I Get the Full Path of My Executable in C/C  ?

C での実行可能ファイルのフル パスの検索

C および C では、現在実行中のプログラムのフル パスを決定するのが困難な場合があります。これは、プログラム名を含む argv[0] が完全なパスを提供しないことが多いためです。

Unix ベースのシステム

実行可能ファイルの場所を確実に取得するにはUnix システムでは「/proc」:

  • を使用しますreadlink("/proc/self/exe", buf, bufsize) (Linux)
  • readlink("/proc/curproc/file", buf, bufsize) (FreeBSD)
  • を使用する
  • readlink("/proc/self/path/a.out", buf, bufsize) (Solaris)
「/proc」のない Unix システムの場合:

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

Windows

Windows 上システムの場合は、次のコードを使用します。

GetModuleFileName(NULL, buf, bufsize);
ログイン後にコピー

追加の考慮事項

    実行可能ファイルがシンボリックリンクであるかどうかを確認し、それに応じて解決します ( Linux の「/proc」メソッド)。
  • 設定するのは呼び出しプロセスの責任であることに注意してください。特に信頼できない状況 (setuid 実行可能ファイルなど) では、argv[0] が正しく実行されます。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート