Maison > développement back-end > C++ > Comment puis-je obtenir le répertoire d'exécution d'un programme C/C multiplateforme ?

Comment puis-je obtenir le répertoire d'exécution d'un programme C/C multiplateforme ?

Patricia Arquette
Libérer: 2025-01-04 00:54:39
original
989 Les gens l'ont consulté

How Can I Get a C/C   Program's Execution Directory Cross-Platform?

Obtention du répertoire d'exécution du programme en C/C

Problème :

Détermination du chemin complet du répertoire dans lequel un programme l'exécution est une tâche fondamentale dans de nombreux scénarios de programmation. Cependant, y parvenir sur diverses plates-formes et systèmes de fichiers peut s'avérer difficile en raison des implémentations spécifiques au système. Pouvez-vous fournir une méthode concise et efficace pour réaliser cela de manière indépendante de la plate-forme ?

Solution :

Selon le système d'exploitation, il existe des approches distinctes pour récupérer cela informations :

Windows :

#include <windows.h>

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

Linux :

#include <string.h>
#include <unistd.h>

int main() {
  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

Ces méthodes s'appuient sur des fonctions système de bas niveau pour obtenir le chemin directement à partir du système d'exploitation, garantissant fonctionnalité indépendante de la plate-forme.

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