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 du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 73
    Points : 65
    Points
    65
    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 éprouvé Avatar de zooro
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2006
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2006
    Messages : 921
    Points : 1 260
    Points
    1 260
    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
    [alkama] quelqu'un est allé voir la guerre des mondes?
    [@Chrisman] j'espère pour spielberg
    --- bashfr.org

  3. #3
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    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).
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.

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

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2006
    Messages : 921
    Points : 1 260
    Points
    1 260
    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.
    [alkama] quelqu'un est allé voir la guerre des mondes?
    [@Chrisman] j'espère pour spielberg
    --- bashfr.org

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

    Informations forums :
    Inscription : Janvier 2006
    Messages : 73
    Points : 65
    Points
    65
    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 du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 73
    Points : 65
    Points
    65
    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 sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    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")
    Pas de Wi-Fi à la maison : CPL

  8. #8
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    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.
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.

+ 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