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

Comment puis-je obtenir le répertoire d'exécution de mon programme C/C sur différentes plates-formes ?

Susan Sarandon
Libérer: 2024-12-24 17:49:09
original
918 Les gens l'ont consulté

How Can I Get the Execution Directory of My C/C   Program Across Different Platforms?

Détermination du répertoire du programme

En C/C, obtenir le chemin complet vers le répertoire à partir duquel un programme est exécuté peut être un défi pour les applications multiplateformes. Cet article aborde ce problème en proposant des solutions adaptées à différentes plates-formes et systèmes de fichiers.

Approches indépendantes de la plate-forme

Malheureusement, il n'existe pas de fonction de bibliothèque C/C standard qui renvoie le chemin du répertoire du programme dans d'une manière indépendante de la plate-forme. Cependant, l'utilisation d'API spécifiques au système d'exploitation peut obtenir ce résultat.

Windows

Sous Windows, la fonction GetModuleFileName peut récupérer le chemin complet du module (fichier exécutable).

char pBuf[256];
size_t len = sizeof(pBuf);
int bytes = GetModuleFileName(NULL, pBuf, len);
if (bytes) {
    return bytes;
} else {
    return -1; // Error
}
Copier après la connexion

Linux

Pour les systèmes Linux, la fonction readlink peut accéder au lien symbolique dans "/proc/self/exe" pour déterminer le chemin du fichier exécutable du programme.

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;
} else {
    return -1; // Error
}
Copier après la connexion

Notez que ces approches sont spécifiques à certaines plates-formes et systèmes de fichiers. Si vous avez besoin d'une solution plus complète, envisagez d'utiliser des bibliothèques multiplateformes comme Boost.filesystem ou Qt.

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!

source:php.cn
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