Maison > développement back-end > C++ > Comment puis-je déterminer le répertoire d'exécution d'un programme sous Windows et Linux ?

Comment puis-je déterminer le répertoire d'exécution d'un programme sous Windows et Linux ?

Patricia Arquette
Libérer: 2024-12-21 15:45:09
original
282 Les gens l'ont consulté

How Can I Determine a Program's Running Directory on Windows and Linux?

Détermination du répertoire d'exécution du programme

Pour récupérer le chemin complet du répertoire à partir duquel un programme s'exécute, diverses méthodes spécifiques à la plate-forme peuvent être employé. Voici deux approches courantes :

Windows :

Windows propose la fonction GetModuleFileName qui renvoie le chemin complet du programme en cours d'exécution. Pour l'utiliser, vous pouvez déclarer un tampon de caractères (char pBuf[256]) pour stocker le chemin et sa longueur (size_t len ​​= sizeof(pBuf)). Ensuite, appelez GetModuleFileName en passant NULL comme descripteur de module et l'adresse du tampon comme deuxième paramètre. La fonction renvoie la longueur du chemin en caractères.

Linux :

Sous Linux, vous pouvez utiliser la fonction readlink. Il accepte le chemin /proc/self/exe comme source et une adresse tampon comme destination. La valeur de retour est le nombre d'octets écrits dans le tampon, qui doit être inférieur à sa longueur (len - 1). N'oubliez pas d'ajouter un terminateur nul après avoir écrit dans le tampon.

Cette approche n'est pas indépendante de la plate-forme ou du système de fichiers. Cependant, il fournit une solution pour des plates-formes et des systèmes de fichiers spécifiques, ce qui le rend précieux pour divers scénarios.

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