Heim > Backend-Entwicklung > C++ > Wie kann ich das Verzeichnis eines Programms in C/C auf verschiedenen Plattformen abrufen?

Wie kann ich das Verzeichnis eines Programms in C/C auf verschiedenen Plattformen abrufen?

Patricia Arquette
Freigeben: 2024-12-22 17:03:10
Original
798 Leute haben es durchsucht

How Can I Get a Program's Directory in C/C   Across Different Platforms?

Abrufen des Programmverzeichnisses in C/C über Plattformen und Dateisysteme hinweg

In vielen Szenarien ist es notwendig, das Verzeichnis zu bestimmen, aus dem das Programm stammt ein Programm läuft. Diese Informationen können für verschiedene Zwecke wertvoll sein, beispielsweise für den Zugriff auf Konfigurationsdateien oder für die Protokollierung. Allerdings kann es eine Herausforderung darstellen, dieses Verzeichnis plattform- und dateisystemunabhängig zu erhalten.

Standardansätze

Die Standard-C/C-Bibliothek tut dies leider stellen hierfür keine Standardfunktion zur Verfügung. Bei plattformspezifischen Lösungen stellt sich die Situation wie folgt dar:

Windows

Auf Windows-Systemen kann die Funktion GetModuleFileName verwendet werden, um den vollständigen Pfad zur ausführenden Anwendung abzurufen .

char pBuf[256];
size_t len = sizeof(pBuf);
int bytes = GetModuleFileName(NULL, pBuf, len);
return bytes ? bytes : -1;
Nach dem Login kopieren

Linux

Für Linux-Systeme gilt das Mit der Readlink-Funktion kann der symbolische Link gelesen werden, der auf das ausgeführte Programm verweist.

char pBuf[256];
size_t len = sizeof(pBuf);
int bytes = MIN(readlink("/proc/self/exe", pBuf, len), len - 1);
if (bytes >= 0)
    pBuf[bytes] = '';
return bytes;
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie kann ich das Verzeichnis eines Programms in C/C auf verschiedenen Plattformen 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