GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie finde ich den vollständigen Pfad des C++-Linux-Programms von innen heraus?

Die häufigste Antwort auf diese Frage listet Techniken für eine ganze Reihe von Betriebssystemen auf.


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 );
}

Unter Linux (Posix?) haben Sie einen symbolischen Link /proc/self/exe die auf den vollständigen Pfad der ausführbaren Datei verweist.

Verwenden Sie unter Windows GetModuleFileName .

Verlassen Sie sich niemals auf argv[0] , was garantiert nichts Nützliches ist.

Beachten Sie, dass Pfade und Dateisysteme nicht Teil der Sprache und daher notwendigerweise eine plattformabhängige Funktion sind.


Linux
  1. So finden Sie unter Linux heraus, ob es sich bei der Festplatte um eine SSD oder HDD handelt

  2. Wie bekomme ich den Pfad zur aktuellen Datei (pwd) in Linux von C?

  3. Wie man die Ergebnisse von 'find' unter Linux an mv weiterleitet

  4. Wie finde ich den Pfad HADOOP_HOME unter Linux?

  5. Wie extrahiert man den Dateinamen ohne die Erweiterung aus einem vollständigen Pfad?

So finden Sie die Virtualbox-Version über die Befehlszeile in Linux

So finden Sie die Liste der installierten Repositories über die Befehlszeile in Linux

So suchen Sie nach Dateien über die Linux-Befehlszeile

So erhalten Sie den Dateinamen aus dem vollständigen Pfad in Linux

So ermitteln Sie die Gesamtgröße eines Verzeichnisses in Linux

So finden Sie Dateien mit dem fd-Befehl in Linux