Heim >Backend-Entwicklung >C++ >Wie kann ich den ausführbaren Pfad plattformübergreifend erhalten?

Wie kann ich den ausführbaren Pfad plattformübergreifend erhalten?

DDD
DDDOriginal
2024-12-22 18:18:17830Durchsuche

How Can I Get the Executable Path Cross-Platform?

Den Pfad der ausführbaren Datei plattformübergreifend ermitteln

Im Bereich der Programmierung bleibt die Bestimmung des Pfades zur aktuell ausgeführten ausführbaren Datei ein hartnäckiger Prozess Herausforderung. Dieser Artikel befasst sich mit den komplizierten Details, um diesen Pfad auf plattformunabhängige Weise zu erhalten.

Plattformunabhängige Ansätze

Man könnte zunächst annehmen, dass boost::filesystem: :initial_path bietet eine Lösung für die plattformübergreifende Anforderung. Es wurde jedoch festgestellt, dass es ausschließlich den Portabilitätsaspekt berücksichtigt, indem es den Pfad zurückgibt, von dem aus die Anwendung initiiert wurde. Dies reicht nicht aus, um den Pfad der ausführbaren Datei bereitzustellen.

Plattformspezifische Lösungen

Obwohl es keine definitive plattformübergreifende Lösung gibt, gibt es plattformspezifische Ansätze:

Linux

  • Pass /proc/self/exe an std::filesystem::canonical oder readlink.

Windows

  • Übergeben Sie NULL als Modulhandle an GetModuleFileName .

Das obige ist der detaillierte Inhalt vonWie kann ich den ausführbaren Pfad plattformübergreifend erhalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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