Heim > Backend-Entwicklung > C++ > Wie kann ich den vollständigen Pfad meiner ausführbaren Datei in C/C abrufen?

Wie kann ich den vollständigen Pfad meiner ausführbaren Datei in C/C abrufen?

Susan Sarandon
Freigeben: 2024-12-14 19:21:12
Original
421 Leute haben es durchsucht

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

Den vollständigen Pfad der ausführbaren Datei in C finden

In C und C kann es schwierig sein, den vollständigen Pfad des aktuell ausgeführten Programms zu ermitteln. Dies liegt daran, dass argv[0], das den Programmnamen enthält, häufig nicht den vollständigen Pfad bereitstellt.

Unix-basierte Systeme

Um den Speicherort der ausführbaren Datei zuverlässig abzurufen auf Unix-Systemen mit „/proc“:

  • Verwenden readlink("/proc/self/exe", buf, bufsize) (Linux)
  • Verwenden Sie readlink("/proc/curproc/file", buf, bufsize) (FreeBSD)
  • Verwenden readlink("/proc/self/path/a.out", buf, bufsize) (Solaris)

Auf Unix-Systemen ohne „/proc“:

  • Wenn argv[0] mit „/“ beginnt, ist es der absolute Pfad.
  • Wenn argv[0] enthält „/“, hängen Sie es an das aktuelle Arbeitsverzeichnis an.
  • Suchen Sie nach argv[0] als ausführbare Datei in den in $PATH angegebenen Verzeichnissen.

Windows

Verwenden Sie auf Windows-Systemen den folgenden Code:

GetModuleFileName(NULL, buf, bufsize);
Nach dem Login kopieren

Zusätzlich Überlegungen

  • Überprüfen Sie, ob es sich bei der ausführbaren Datei um einen Symlink handelt, und lösen Sie ihn entsprechend auf (nicht erforderlich, wenn Sie die Methode „/proc“ unter Linux verwenden).
  • Beachten Sie, dass es sich um den handelt Verantwortung des aufrufenden Prozesses, argv[0] korrekt festzulegen, insbesondere in nicht vertrauenswürdigen Situationen (z. B. ausführbare Setuid-Dateien).

Das obige ist der detaillierte Inhalt vonWie kann ich den vollständigen Pfad meiner ausführbaren Datei in C/C abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage