Chemin d'accès Linux/Win32

Bonjour amis dévellopeurs, j'ai une question à vous poser :

Je programmais sous Windows en language C, avec cette ligne :

FILE *test = fopen("test", "w+");

Il crée un fichier 'test' dans le repertoire d'execution

Quand je disais 'je programmais sous Windows' , c'est que depuis le temps, je me suis pris de passion pour cet OS du nom de GNU/LINUX, avec cette ligne :

FILE *test = fopen("test", "w+");

Il crée un fichier dans 'test' dans /home/DALEX/

Comment demandé à ce que le fichier soit crée dans le repertoire d'execution ?

Sachant que je souhaiterais une solution MULTIPLATFORME

peut-être qu'en passant par une constante C...

Merci

DALEX
Configuration: Windows XP
Internet Explorer 6.0

7 réponses

  1. bein c'est simple en win et linux y'a un truc qui est le meme dans la nomenclature des repertoires
    . (point) le repertoire courant
    .. (2 points) le repertoire parent
    donc en linux tu metteras
    FILE *test = fopen("./test", "w+");

    juste une chose linux te cree les fichiers de ton home si tu spécifie pas une chemin complet :-)
    1. Merci UaLShark, mais les deux points crashent le programme et le ./ me renvoie dans /home/DALEX/

      Quel est le souci ???

      DALEX
      1. dis DALEX, tu executes dans quel repertoire ton app?
        ./ton_app ?
        (avant tu lance l'execution pwd te retourne quoi?)
    2. L'appli se trouve dans /Xchange/Button

      là, j'ai le projet codeblocks et les sources, et dans /Xchange/Button/Bin, j'ai l'executable compilé

      mais quand tu execute direct avec codeblocks, ça passe, mais sans codeblocks, le fichier est attendue dans /home/DALEX/ alors qu'il devrait l'etre dans /Xchange/Buttons/bin

      en sachant que je voudrais n'utiliser que des chemins relatifs

      merci UaLShark

      DALEX
      1. re UaLShark

        La commande pwd me retourne /home/DALEX/

        Donc pour lui, c'est le repertoire courant, comment résoudre le problème ?

        merci
        1. donc dès deux choses l'une ou bien
          FILE *test = fopen("/Xchange/Button/Bin/test", "w+");
          ou
          bien
          tu mets l'executable dans /Xchange/Button/Bin
          et tu l'execute apres un :
          cd /Xchange/Button/Bin
          ./ton_app
          1. Merci beaucoup UalShark

            on se log sur un terminal, direction le rep d'execution puis ./tonapp

            ça pette le feu !!! :-)

            salut et merci

            DALEX