Gibt es eine plattformunabhängige und eine dateisystemunabhängige Methode, um den vollständigen Pfad des Verzeichnisses abzurufen, aus 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 unter Windows und Linux für bestimmte Dateisysteme funktionieren.)
argv[0]
, ist die Technik sehr betriebssystemabhängig.
#include <windows.h>
tun, fügt Windows automatisch einen char*
in den ausführbaren Pfad ein _pgmptr
. Sie müssen keine zusätzlichen Funktionen aufrufen oder Junk annehmen, wenn Sie nur unter Windows arbeiten.
_pgmptr
. In der MSDN-Dokumentation wird angegeben, dass die Variablen _pgmptr
und _wpgmptr
veraltet sind. Verwenden Sie stattdessen die Funktion _get_pgmptr(char**)
oder _get_wpgmptr(wchar_t**)
. MSDN