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 :

getcwd() répertoire courant


Sujet :

C

  1. #1
    Membre confirmé Avatar de acryline
    Profil pro
    Inscrit en
    Août 2006
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 200
    Par défaut getcwd() répertoire courant
    Bonjour,

    j'aurais besoin de récupérer le répertoire courant de mon application pour enregistrer des fichiers. Pour cela j'utilise getcwd
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    getcwd(gadget.repCourant,256);
    gadget est une structure.
    Je code dans codeblocks et je suis sous Linux.
    Quand je fais fonctionner mon programme à partir de codeblocks, la fonction retourne le bon répertoire et donc mes fichiers s'enregistrent au bon endroit.
    En revanche quand je fais fonctionner mon programme en dehors de codeblocks le répertoire courant trouvé n'est pas le bon, l'application me retourne mon home/pseudo. Je n'arrive pas à comprendre pourquoi?
    Je me demande si j'ai mal configuré codeblocks...?? Auriez-vous une solution ?

    Merci pour vos réponses.

  2. #2
    Membre Expert Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Par défaut
    C'est un comportement normal, pas spécifique à codeblock, la plupart des IDEs modifies le répertoire courant pour le faire pointer sur le répertoire du projet.
    Cordialement.

  3. #3
    Membre confirmé Avatar de acryline
    Profil pro
    Inscrit en
    Août 2006
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 200
    Par défaut
    Ah ok merci , mais j'ai du mal m'exprimer alors... j'aimerais toujours (dans codeblocks comme il le fait et ailleurs) obtenir le répertoire où se trouve l'exécutable.

  4. #4
    Rédacteur
    Avatar de Vincent Rogier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 373
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 373
    Par défaut
    Bonsoir,

    Le chemin complet de ton binaire est fournit par argv[0] dans ton main().
    Vincent Rogier.

    Rubrique ORACLE : Accueil - Forum - Tutoriels - FAQ - Livres - Blog

    Vous voulez contribuer à la rubrique Oracle ? Contactez la rubrique !

    OCILIB (C Driver for Oracle)

    Librairie C Open Source multi-plateformes pour accéder et manipuler des bases de données Oracle

  5. #5
    gl
    gl est déconnecté
    Rédacteur

    Homme Profil pro
    Inscrit en
    Juin 2002
    Messages
    2 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 165
    Par défaut
    Citation Envoyé par vicenzo Voir le message
    Le chemin complet de ton binaire est fournit par argv[0] dans ton main().
    Pas nécessairement, argv[0] peut contenir :
    * le chemin complet du binaire,
    * seulement le nom du programme,
    * voire une chaine vide

  6. #6
    Rédacteur
    Avatar de Vincent Rogier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 373
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 373
    Par défaut
    Citation Envoyé par gl Voir le message
    Pas nécessairement, argv[0] peut contenir :
    * le chemin complet du binaire,
    * seulement le nom du programme,
    * voire une chaine vide
    Pour être encore plus précis, la norme indique de si argc est > 0 alors argv[0] représente le nom de programme ("program name") si l'environnement est capable de mettre à disposition cette information.

    La norme ne précise effectivement pas du tout la "forme" du nom du programme (nom seul, chemin absolu+nom, chemin relatif+nom, etc...).

    Mais usuellement, le chemin absolu+nom complet est fourni....
    Vincent Rogier.

    Rubrique ORACLE : Accueil - Forum - Tutoriels - FAQ - Livres - Blog

    Vous voulez contribuer à la rubrique Oracle ? Contactez la rubrique !

    OCILIB (C Driver for Oracle)

    Librairie C Open Source multi-plateformes pour accéder et manipuler des bases de données Oracle

  7. #7
    gl
    gl est déconnecté
    Rédacteur

    Homme Profil pro
    Inscrit en
    Juin 2002
    Messages
    2 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 165
    Par défaut
    Citation Envoyé par vicenzo Voir le message
    Pour être encore plus précis, la norme indique de si argc est > 0 alors argv[0] représente le nom de programme ("program name") si l'environnement est capable de mettre à disposition cette information.
    Tout a fait.

    Citation Envoyé par vicenzo Voir le message
    Mais usuellement, le chemin absolu+nom complet est fourni....
    Bof, c'est extrêmement dépendant de la plateforme et de la façon de lancer le programme.
    Par exemple sous XP, c'est la chaine utilise pour lancer le programme qui est fournit dans argv[0] (de mémoire c'est également le fonctionnement des autres versions de windows et celui de Linux).
    Ainsi si le programme est lancé depuis l'explorateur de fichier, c'est bien le chemin complet.
    S'il est lancé depuis une console c'est ce qui a été saisi par l'utilisateur pour lancer le programme (généralement le nom seul donc).

  8. #8
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 393
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 393
    Par défaut
    Citation Envoyé par acryline Voir le message
    j'aimerais toujours (dans codeblocks comme il le fait et ailleurs) obtenir le répertoire où se trouve l'exécutable.
    Il n'existe aucun moyen de le faire qui soit à la fois portable et sûr.

    Sous Windows, la fonction GetModuleFileName() fait ça (retourne le chemin du .EXE, jamais d'une DLL) si tu lui passes NULL en premier paramètre.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  9. #9
    Membre confirmé Avatar de acryline
    Profil pro
    Inscrit en
    Août 2006
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 200
    Par défaut
    Merci pour vos réponses.
    Donc je pense que je vais définir un chemin obligatoire où je vais enregistrer mes fichiers comme /usr/local/share/nom_du programmme/

Discussions similaires

  1. Répertoire courant
    Par remika dans le forum Entrée/Sortie
    Réponses: 19
    Dernier message: 05/07/2005, 11h18
  2. [Débutant] Connaitre le répertoire courant
    Par The Wretched dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 16/06/2005, 12h51
  3. [File] Problème de répertoire courant
    Par seb_asm dans le forum Applets
    Réponses: 5
    Dernier message: 03/05/2005, 19h44
  4. [JSP] Récupérer le répertoire courant
    Par dafly dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 10/06/2004, 11h01
  5. répertoire courant ".\"
    Par tut dans le forum MFC
    Réponses: 2
    Dernier message: 10/03/2004, 09h57

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