GNU/Linux >> Tutoriels Linux >  >> Linux

Comment trouver le chemin complet du programme Linux C++ de l'intérieur ?

La réponse principale à cette question répertorie les techniques pour tout un tas de systèmes d'exploitation.


string get_path( )
{
        char arg1[20];
        char exepath[PATH_MAX + 1] = {0};

        sprintf( arg1, "/proc/%d/exe", getpid() );
        readlink( arg1, exepath, 1024 );
        return string( exepath );
}

Sous Linux (Posix ?) vous avez un lien symbolique /proc/self/exe qui renvoie au chemin complet de l'exécutable.

Sous Windows, utilisez GetModuleFileName .

Ne comptez jamais sur argv[0] , dont l'utilité n'est pas garantie.

Notez que les chemins et les systèmes de fichiers ne font pas partie du langage et donc nécessairement une fonctionnalité dépendante de la plate-forme.


Linux
  1. Comment savoir si le disque est un SSD ou un disque dur sous Linux

  2. Comment obtenir le chemin d'accès au fichier actuel (pwd) sous Linux à partir de C ?

  3. Comment diriger les résultats de 'find' vers mv sous Linux

  4. comment trouver le chemin HADOOP_HOME sous Linux ?

  5. Comment trouver le chemin d'installation de git sous Mac ou Linux ?

Comment trouver la version de Virtualbox à partir de la ligne de commande sous Linux

Comment trouver la liste des référentiels installés à partir de la ligne de commande sous Linux

Comment rechercher des fichiers à partir de la ligne de commande Linux

Comment obtenir le nom de fichier à partir du chemin complet sous Linux

Comment trouver la taille totale d'un répertoire sous Linux

Comment rechercher des fichiers avec la commande fd sous Linux