IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Récupérer le chemin et nom de l'exécutable


Sujet :

C

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 73
    Par défaut Récupérer le chemin et nom de l'exécutable
    Bonjour à tous!

    Voila: je fais un programme et j'aurais voulu savoir si quelqu'un ne connaitrait pas une API capable de récupérer le chemin complet de l'exécutable dans lequel elle est...

    Merci à tous et bon week-end!!

  2. #2
    Membre Expert Avatar de zooro
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2006
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2006
    Messages : 921
    Par défaut
    Tu peux déjà récupérer le nom de l'exécutable par argv[0], il me semble.
    Pour le chemin : http://man.developpez.com/man3/getcwd.3.php

  3. #3
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Citation Envoyé par zooro
    Tu peux déjà récupérer le nom de l'exécutable par argv[0], il me semble.
    Il s'y trouve aussi parfois une indication du chemin. Mais celui qui lance le programme peut y mettre n'importe quoi sous Unix comme sous Windows.

    Il n'y a a priori aucune relation entre le répertoire courant et le répertoire où se trouve l'exécutable.

    Il n'y a aucune méthode sûre et portable.

    Il y a des méthodes non portables (je ne sais plus quoi pour Windows, /proc/self/exe est un lien symbolique vers l'exécutable sous Linux, il y a parfois moyen de récupérer l'info en accédant à l'éditeur de liens dynamique sous Unix,...) et il y a des moyens portables mais au résultat plus ou moins garanti (utiliser argv[0] et la variable d'environnement PATH, passer par un script...) et il y a les moyens traditionnels de la plateforme d'éviter de se poser la question (base de registres de Windows, configuration à un endroit fixe ou script modifié à l'installation sous Unix).

  4. #4
    Membre Expert Avatar de zooro
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2006
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2006
    Messages : 921
    Par défaut
    Citation Envoyé par Jean-Marc.Bourguet
    Il s'y trouve aussi parfois une indication du chemin. Mais celui qui lance le programme peut y mettre n'importe quoi sous Unix comme sous Windows.
    Oui, je l'avais déjà fait avec un démon sous Linux... PostgreSQL, par exemple, fait ça pour donner des stats.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 73
    Par défaut
    Mon prog n'est prévu que pour windows pour l'instant (Dev Cpp). Donc si qqun connait une méthode spécifique à windows, c'est volontiers

    Je redis pour argv[0]

    @++

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 73
    Par défaut
    Trouvé l'API pour windows:

    GetModuleFileName(HINSTANCE, char[MAX_PATH], MAX_PATH);

    argv fonctionne, masi seulement pour les applications console (main), pas pour la WinMain.

    Voilà...et ça marche! [résolu]

  7. #7
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par N3odyme
    j'aurais voulu savoir si quelqu'un ne connaitrait pas une API capable de récupérer le chemin complet de l'exécutable dans lequel elle est...
    Il y n'y a pas de méthode portable. argv[0] retourne soit :
    • l'adresse d'une chaine vide ("")
    • l'adresse du nom du programme ("monappli")
    • l'adresse du nom avec le chemin complet ("/monchemin/mon appli")

  8. #8
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Citation Envoyé par Emmanuel Delahaye
    Il y n'y a pas de méthode portable. argv[0] retourne soit :
    • l'adresse d'une chaine vide ("")
    • l'adresse du nom du programme ("monappli")
    • l'adresse du nom avec le chemin complet ("/monchemin/mon appli")
    Soit un chemin relatatif, soit n'importe quoi d'autres.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment récupérer le chemin complet SANS le nom de la page HTML ?
    Par Zebulon777 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 24/09/2010, 11h17
  2. Récupérer le chemin du module en cours d'exécution
    Par mdriesbach dans le forum Général Python
    Réponses: 6
    Dernier message: 09/07/2010, 09h50
  3. Réponses: 2
    Dernier message: 19/05/2008, 01h01
  4. [DOM4J] récupérer chemin avec nom attribut
    Par jenny1985 dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 12/07/2007, 17h24
  5. Récupérer le chemin d'exécution d'un programme ?
    Par uranium-design dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 06/04/2007, 23h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo