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

Linux Discussion :

Obtention de l'emplacement d'un exe


Sujet :

Linux

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Septembre 2003
    Messages
    222
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 222
    Par défaut Obtention de l'emplacement d'un exe
    Bonjour,

    Je suis actuellement confronté à un petit probleme mais que je ne sais pas résoudre.
    Je m'explique.
    J'ai un programme qui a besoin de connaitre son emplacement.
    Admetons que celui ci se trouve dans l'arborescence suivante: /tmp/program
    Si j'ouvre une konsole de que je tape
    cd /tmp/program
    monprog
    J'obtiens:
    Je me trouve dans /tmp/program

    Jusque la aucun soucis.

    Maintenant si je le lance à partir d'un lien pointant sur mon programme et que ce lien se trouve dans /user1/Desktop
    J'obtiens:
    Je me trouve dans /user1/Desktop
    Et non /tmp/program !!!!

    Comment faire pour ne pas avoir le chemin du lien mais le chemin de la cible si c'est un lien ??? (car sinon il nous faut juste le chemin et la ça fonctionne !!)


    Merci d'avance pour vos reponses.

    Voici le programme utilisé pour les explications précédentes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    char *path = (char*)malloc(sizeof(char)*500);
    getcwd(path, 500);
    printf("Je me trouve %s\n", path);
    free(path);
    [/code]

  2. #2
    Membre éprouvé

    Inscrit en
    Juin 2004
    Messages
    1 397
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 1 397
    Par défaut
    Logique, car WD veut dire Working Directory (répertoire de travail), donc, tu obtiens par cette commande le répertoire où tu te trouves !
    Je n'ai jamais réfléchis à ce problème, en tout cas, pas en C.

  3. #3
    Membre éclairé
    Inscrit en
    Septembre 2003
    Messages
    222
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 222
    Par défaut
    Citation Envoyé par progman
    Logique, car WD veut dire Working Directory (répertoire de travail), donc, tu obtiens par cette commande le répertoire où tu te trouves !
    Je ne savais pas merci...

    Citation Envoyé par progman
    Je n'ai jamais réfléchis à ce problème, en tout cas, pas en C.
    Euh... ça ne m'avance pas trop...
    Quelqu'un y a t-il reflechi...

  4. #4
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Par défaut
    Bonjour,

    Citation Envoyé par MonsieurAk
    Quelqu'un y a t-il reflechi...
    rapidement, et la solution simple que j'ai trouvé c'est de définir une constante lors de la compilation. Avec gcc :
    Le problème c'est qu'il faut recompiler le programme s'il ont veut le changer de répertoire

  5. #5
    Membre éclairé
    Inscrit en
    Septembre 2003
    Messages
    222
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 222
    Par défaut
    Citation Envoyé par gege2061
    rapidement, et la solution simple que j'ai trouvé c'est de définir une constante lors de la compilation. Avec gcc :
    Le problème c'est qu'il faut recompiler le programme s'il ont veut le changer de répertoire
    Euh ouai méthode peu commune...

    Bon moi j'ai cherché et j'ai trouvé une méthode. Je vous en fais donc part.
    Tout d'abord on test le fichier que l'on lance via getcwd/argv[0] et en utilisant lstat pour savoir si le fichier est un lien symbolique ou non
    Puis si on utilise un lien symbolique on utilise readlink pour obtenir la cible du lien.
    Voila !

    Merci quand même.

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

Discussions similaires

  1. lier un .exe à des dll dans un autre emplacement
    Par Husqvarna dans le forum Général Dotnet
    Réponses: 3
    Dernier message: 19/04/2006, 10h53
  2. [Kylix] Un exe kylix es t'il independant ?
    Par mailstef dans le forum EDI
    Réponses: 2
    Dernier message: 19/11/2002, 22h01
  3. Comment créer et executer un .EXE
    Par maher12 dans le forum Flash
    Réponses: 3
    Dernier message: 26/09/2002, 08h33
  4. Format d'un exe pour DOS et pour Windows
    Par Alfhiger dans le forum Assembleur
    Réponses: 4
    Dernier message: 12/06/2002, 11h57
  5. Quel désassembleur/assembleur pour un exe Windows ?
    Par Anonymous dans le forum x86 32-bits / 64-bits
    Réponses: 6
    Dernier message: 17/04/2002, 10h59

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