Wie erhalte ich das Verzeichnis, in dem ein Programm ausgeführt wird?

Lesezeit: 1 Minute

Wie erhalte ich das Verzeichnis in dem ein Programm ausgefuhrt
Ashwin Nanjappa

Gibt es eine plattformunabhängige und dateisystemunabhängige Methode, um den vollständigen Pfad des Verzeichnisses abzurufen, in dem ein Programm mit C/C++ ausgeführt wird? Nicht zu verwechseln mit dem aktuellen Arbeitsverzeichnis. (Bitte schlagen Sie keine Bibliotheken vor, es sei denn, es handelt sich um Standardbibliotheken wie clib oder STL.)

(Wenn es keine plattform-/dateisystemunabhängige Methode gibt, sind auch Vorschläge willkommen, die in Windows und Linux für bestimmte Dateisysteme funktionieren.)

  • Es sei denn, Sie können den Pfad zuverlässig extrahieren argv[0]wird die Technik sehr OS-abhängig sein.

    – David R. Tribble

    28. Januar 2010 um 0:42 Uhr

  • Nur zur Verdeutlichung: Das „aktuelle Verzeichnis“ oder „das Verzeichnis, von dem aus das Programm ausgeführt wird“ (in der Terminologie der Frage) ist das Verzeichnis, in dem sich die Bilddatei des Programms (~.exe-Datei) befindet, und die jetzige Arbeiten Verzeichnis’ ist das Verzeichnis, das automatisch vervollständigt wird, wenn das Programm relative Pfade verwendet?

    – colemik

    24. April 2013 um 9:53 Uhr


  • Wenn du #include <windows.h>setzt Windows automatisch a char* zum ausführbaren Pfad in _pgmptr. Sie müssen keine zusätzlichen Funktionen aufrufen oder Junk annehmen, wenn Sie nur unter Windows arbeiten.

    – rsethc

    1. Mai 2013 um 1:38 Uhr

  • Beantwortet das deine ursprüngliche Frage? github.com/gpakosz/whereami

    – Gregory Pakosz

    5. Juni 2015 um 15:20 Uhr

  • Obwohl der Kommentar drei Jahre alt ist, möchte ich den Kommentar von rsethc über erweitern _pgmptr. In der MSDN-Dokumentation heißt es, dass die _pgmptr und _wpgmptr Variablen sind veraltet, und Sie sollten die Funktion verwenden _get_pgmptr(char**) oder _get_wpgmptr(wchar_t**) stattdessen. MSDN

    – Hydranix

    5. März 2016 um 23:44 Uhr


995030cookie-checkWie erhalte ich das Verzeichnis, in dem ein Programm ausgeführt wird?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy