GNU/Linux >> Linux の 問題 >  >> Linux

内部からC++ Linuxプログラムのフルパスを見つける方法は?

この質問への一番の回答は、OS の全体に対するテクニックをリストしています。


string get_path( )
{
        char arg1[20];
        char exepath[PATH_MAX + 1] = {0};

        sprintf( arg1, "/proc/%d/exe", getpid() );
        readlink( arg1, exepath, 1024 );
        return string( exepath );
}

Linux (Posix?) では、シンボリック リンク /proc/self/exe があります。 実行可能ファイルのフル パスにリンクします。

Windows では、GetModuleFileName を使用します .

argv[0] に頼らない 、これは有用であるとは限りません。

パスとファイル システムは言語の一部ではないため、必然的にプラットフォームに依存する機能であることに注意してください。


Linux
  1. CからLinuxで現在のファイル(pwd)へのパスを取得する方法は?

  2. コンテナー自体から Docker Linux コンテナー情報を取得するにはどうすればよいですか?

  3. Linux で「find」の結果を mv にパイプする方法

  1. LinuxでディスクがSSDかHDDかを確認する方法

  2. LinuxでHADOOP_HOMEパスを見つける方法は?

  3. フルパスから拡張子なしでファイル名を抽出する方法は?

  1. Linuxコマンドラインからハードウェアをプログラムする

  2. LinuxでターミナルからWebを検索する方法

  3. MacまたはLinuxでgitのインストールパスを見つける方法は?