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 :

[debutant] recuperer chemin du repertoire courant getcwd


Sujet :

C

  1. #1
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 39
    Par défaut [debutant] recuperer chemin du repertoire courant getcwd
    bonjour
    je cherche a recuperer le chemin complet ou un programme s'excute
    j'utlise getcwd de la maniere suivante


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    long size;
    	char *buf;
    	char *ptr;
     
    	size = pathconf(".", _PC_PATH_MAX);
    	if ((buf = (char *)malloc((size_t)size)) != NULL)
    	{
        	ptr = getcwd(buf, (size_t)size);
    	}

    dans ptr j'obtiens le chemin mais il se trouve dans la forme
    /cygdrive/d/code/102
    j'aimerais saoir comment est ce que je peux avoir le chemin sous la forme
    D:/code/102
    histoire de pourvoir ouvrir un fichier qui se trouvera systematiquement dans le meme repertoire
    merci d'avance!!!

  2. #2
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    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 395
    Par défaut
    Ben, je ne vois pas où est le problème...
    Tant que tu es sous cygwin, le répertoire /cygdrive/d/code/102 est bien le répertoire courant...

    Par contre, là où est le problème, c'est que répertoire courant != répertoire du programme.

    Sous un OS unixoïde, tu n'as aucun moyen sur de récupérer le chemin d'accès de l'exécutable.
    Sous Win32, GetModuleFileName(NULL) te donne toujours le chemin d'accès complet de l'EXE, d'où tu peux extraire le chemin du dossier.
    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.

  3. #3
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 39
    Par défaut
    alors pour pourvoir ouvrir le fichier qui s'apelle "param.txt" qui est dans le meme repertoire je fais quoi???
    je dois fournir a fopen l'adresse du fichier de la forme D:/code/102/param.txt
    sinon le "fopen" ne compredra pas.
    l'objectif a terme est de creer un repertoire comprenant le fichier param.txt et mon executable et que je puisse les exporter sur n'importe quel disque de mon pc et sur n'importe quel autre pc!!!!

  4. #4
    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
    Et si tu donne uniquement le nom du fichier à ouvrir ? Si le fichier est au même emplacement que l'exécutable je ne vois pas le problème pour cette pratique, c'est d'ailleurs ce que je fait souvent !
    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 !

  5. #5
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 39
    Par défaut
    merci ca marche!!!
    par contre qd je l'execute sur un autre poste il me demande la cygwin1.dll!!!
    oups je ne comprends pas pourquoi...

  6. #6
    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 darkman10
    par contre qd je l'execute sur un autre poste il me demande la cygwin1.dll!!!
    oups je ne comprends pas pourquoi...
    Bin c'est qu'il te manque tout simplement la DLL, moi a ta place je metterais également cette DLL dans le même répertoire que le programme pour être sûr du coup
    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 !

  7. #7
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    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 395
    Par défaut
    Citation Envoyé par darkman10
    je dois fournir a fopen l'adresse du fichier de la forme D:/code/102/param.txt
    sinon le "fopen" ne compredra pas.
    Ben si, sous Cygwin, le fopen() comprend.

    par contre qd je l'execute sur un autre poste il me demande la cygwin1.dll!!!
    oups je ne comprends pas pourquoi...
    Ben sous Cygwin, il faut la DLL de Cygwin, c'est aussi simple que ça.
    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.

  8. #8
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 39
    Par défaut
    Merci a tous pour vos reponses
    tous les trucs on marché !!!
    le fwrtite marche aussi dans le repertoire ou se trouve l'EXE!!!
    merci beaucoup les amis!!!

  9. #9
    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
    Au plaisir
    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 !

  10. #10
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 39
    Par défaut
    attention toutefois quand vous faite appel a partir d'un autre repertoire a votre executable a partir d'un shell l'executable va chercher le fichier param non pas dans le repertoire ou il se situe mais dans le repertoire d'appel!!!!
    exemple si dans votre fenetre de commande vous avez
    U:\
    et que vous tapez la commande suivante
    D:\simulateur.exe
    he ben il va chercher les ficher de parametres dans U:\ et pas dans D:\

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

Discussions similaires

  1. [XML] Chemin du Repertoire courant
    Par ti_angelo dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 22/07/2009, 15h39
  2. probleme pour recuperer le chemin du dossier courant
    Par HoB dans le forum API standards et tierces
    Réponses: 8
    Dernier message: 11/08/2007, 11h22
  3. Recuperation du repertoire courant et utilisation
    Par Kikumaru dans le forum Scripts/Batch
    Réponses: 6
    Dernier message: 13/06/2007, 15h07
  4. recuperer le chemin du repertoire de la base de donnee
    Par Chromatic dans le forum Access
    Réponses: 5
    Dernier message: 24/02/2006, 14h04
  5. Récupérer le répértoire courant
    Par Belegkarnil dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 19/12/2005, 05h55

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