Maison > développement back-end > C++ > Comment puis-je obtenir le répertoire d'un programme en C/C sur différentes plates-formes ?

Comment puis-je obtenir le répertoire d'un programme en C/C sur différentes plates-formes ?

Patricia Arquette
Libérer: 2024-12-22 17:03:10
original
842 Les gens l'ont consulté

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

Obtention du répertoire du programme en C/C sur les plates-formes et les systèmes de fichiers

Dans de nombreux scénarios, il devient nécessaire de déterminer le répertoire à partir duquel un programme est en cours d'exécution. Ces informations peuvent être utiles à diverses fins, telles que l'accès aux fichiers de configuration ou la journalisation. Cependant, obtenir ce répertoire d'une manière indépendante de la plate-forme et du système de fichiers peut poser un défi.

Approches standard

La bibliothèque C/C standard, malheureusement, ne ne fournit pas de fonction standard à cet effet. Pour les solutions spécifiques à la plateforme, la situation est la suivante :

Windows

Sur les systèmes Windows, la fonction GetModuleFileName peut être utilisée pour récupérer le chemin complet de l'application en cours d'exécution .

char pBuf[256];
size_t len = sizeof(pBuf);
int bytes = GetModuleFileName(NULL, pBuf, len);
return bytes ? bytes : -1;
Copier après la connexion

Linux

Pour les systèmes Linux, le La fonction readlink peut être utilisée pour lire le lien symbolique pointant vers le programme en cours d'exécution.

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;
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal