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 :

Exécution différente suivant le chemin d'accès


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut Exécution différente suivant le chemin d'accès


    J'ai un petit soucis sur l'exécution d'un de mes programmes sous Linux je le précise tout de suite Voici les différents tests :

    • Depuis Code::Blocks pas de soucis
    • En cliquant sur le binaire dans son répertoire où il est généré, pas de soucis
    • Depuis la console en entrant d'abord dans le répertoire du binaire, pas de soucis
    • Sous Gnome, dans un lanceur d'application, ca marche pas, il trouve pas le fichier de configuration nécessaire au démarrage !
    • Depuis ce dernier test, sur la console, je me suis mis sur le répertoire racine '/' et j'ai essayé le lancer le programme, rien à faire, même résultat que depuis le lanceur d'application !


    Qu'est-ce que je pourrais faire ? J'ai mis à tout hasard un chdir dans le main en mettant argv[0] comme chemin courant pour voir mais cela ne change rien au problème !

    Je précise que le fichier de configuration se trouve dans un répertoire donc depuis le fichier binaire : /share/config/.


    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  2. #2
    Invité(e)
    Invité(e)
    Par défaut
    Bonsoir,
    Citation Envoyé par Franck.H Voir le message
    Qu'est-ce que je pourrais faire ? J'ai mis à tout hasard un chdir dans le main en mettant argv[0] comme chemin courant pour voir mais cela ne change rien au problème !
    À tout hasard, tu a bien retiré ce qui se trouve le dernier / dans argv[0] ?

  3. #3
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Citation Envoyé par mabu Voir le message
    À tout hasard, tu a bien retiré ce qui se trouve le dernier / dans argv[0] ?
    C'est vrai j'avais plus fait attention à ce petit détails, c'est rentré dans l'ordre...
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  4. #4
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 474
    Par défaut
    Citation Envoyé par Franck.H Voir le message
    C'est vrai j'avais plus fait attention à ce petit détails, c'est rentré dans l'ordre...
    Attention ! Les exécutables sont censés aller dans « /usr/bin » et pas « /usr » tout court. Si tu as mis ton fichier de conf' dans /usr/share/config, il faut en principe utiliser « ../ » comme préfixe pour remonter d'un cran.

    Ensuite, « /usr/share/config » n'est pas standard. Habituellement, les fichiers de conf' vont soit dans « /etc », soit à la racine du home utilisateur, en tant que fichier caché. « /usr/share/config » existe bel et bien sur ma Fedora 13, mais est complètement vide. Et je n'en trouve aucune trace dans le F.H.S..

    D'autre part, le cwd (Current Working Directory) est celui depuis lequel l'utilisateur lance sa commande. Donc, il n'a pas de valeur « normale » à l'exécution. Il faut considérer que tu peux être n'importe où. L'exemple le plus criant est celui de la commande ls : on s'attend bien à ce qu'elle affiche par défaut le contenu du répertoire courant et pas celui d'un unique répertoire codé en dur. :-)

    Enfin, et c'est une des nombreuses bizarreries de GNOME, il est possible de spécifier un répertoire courant d'exécution dans un lanceur, à la manière des raccourcis Windows, en précisant « Path=… » dans le fichier du lanceur, mais on ne peut pas l'initialiser via l'interface graphique, et cela n'apparaît dans la doc officielle. Par contre, c'est défini chez Freedesktop.

    GNOME a vocation à normaliser au maximum son propre système mais, à plusieurs reprise, a supprimé bon nombre de fonctionnalités existantes pour les réécrire au propre (le problème, c'est qu'on a eu des fonctionnalités supprimées avant que les suivantes soient réécrites, comme GDM, ce qui a posé beaucoup de problèmes). Freedesktop cherche à établir des standards interopérationnels entre les bureaux, basés sur X-Window principalement. Donc, difficile de dire ce qui est déprécié et ce qui ne l'est pas.

  5. #5
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    En réalité pour le moment le chemin n'est pas de cette manière, le dossier du binaire et les autres sous-dossier sont dans le dossier de travaille du projet, je n'ai pas encore définit les chemins réèls. Mais c'est à faire c'est vrai
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 12/08/2013, 22h59
  2. Exécution différente suivant l'environnement.
    Par AntiLoxy dans le forum C++
    Réponses: 5
    Dernier message: 18/11/2012, 22h23
  3. [MacCaml] Chemin d'accès au fichier exécuté
    Par Digimag dans le forum Caml
    Réponses: 0
    Dernier message: 19/02/2011, 12h36
  4. Plans d'exécutions différents suivant la source
    Par jmerigea dans le forum Administration
    Réponses: 11
    Dernier message: 10/07/2009, 21h41
  5. erreur d'exécution '76' chemin d'accès introuvable
    Par ensmaitk dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 26/04/2007, 17h31

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