Partage
  • Partager sur Facebook
  • Partager sur Twitter

Creation Fichier sous Mac

Sujet résolu
    23 octobre 2019 à 13:51:17

    Bonjour,

    Je suis en train de suivre les indication du livre "apprenez à programmer en c" de Mathieu Nebra, mais malheureusement je ne vois pas comment je fais pour crée un fichier sous mac ?

    Si quelqu'un peut m'aider Merci d'avance.

    • Partager sur Facebook
    • Partager sur Twitter
      23 octobre 2019 à 17:57:55

      Hello,

      Sous osx, linux ou windows

      FILE *st;
      char *filename="le_nom";
      
      st=fopen(filename,"w");
      if(st==NULL) {
          // traiter l'erreur
      }
      else {
          // le programme continue
          ....
          fclose(st);
      }
      

      -
      Edité par edgarjacobs 23 octobre 2019 à 18:01:00

      • Partager sur Facebook
      • Partager sur Twitter

      On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent

        23 octobre 2019 à 18:29:46

        Hé oui, c'est tout l'avantage des bibliothèques standard en C, c'est portable.
        • Partager sur Facebook
        • Partager sur Twitter
          23 octobre 2019 à 19:31:06

          ok merci enfaite ça c'est bon.

          J'arrive juste pas à trouver mon fichier ? j'ai vu qu'apparemment je n'était pas le seul à qui cela arrive (enfin sur mac en tout cas !) mais malheureusement je n'ai toujours pas réussie :(

          je vous met mon code au cas où mais je pense pas que ça vienne de là 

          merci en tout cas edgarjacobs et zoup de vos réponses.

          int main(int argc, const char * argv[]) {
              
              
              FILE* fichier = NULL;
              
              fichier = fopen("/Xcode⁩/⁨Hello World⁩/Hello World⁩/Test.txt","rw+");
              
              if(fichier != NULL)
              {
                  fclose(fichier);
              }
              else
              {
                  printf("C de la merde ");
              }
              return 0;
              
          }

          ps : le prototype dans .h : 

          FILE* fopen(const char* NomDuFichier, const char* modeOuverture);
          
          • Partager sur Facebook
          • Partager sur Twitter
            23 octobre 2019 à 20:16:03

            Le mode "rw+" n'existe pas....  fopen()

            -
            Edité par edgarjacobs 23 octobre 2019 à 20:31:07

            • Partager sur Facebook
            • Partager sur Twitter

            On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent

              24 octobre 2019 à 12:29:26

              ok merci 

              enfaite j'avais mis ça car j'avais lu que cela marchait dans un autre sujet ...

              la création de fichier est si importante car de toute évidence ça ne fonctionne pas sur mon mac...

              • Partager sur Facebook
              • Partager sur Twitter
                24 octobre 2019 à 12:52:02

                Salut,

                Il faut faire attention au dossier dans lequel ton application va créer le fichier en question si tu n'indique pas explicitement un dossier bien spécifique pour ce faire.  Généralement, ce sera

                • soit dans le dossier dans lequel se trouve l'application
                • soit dans le dossier d'exécution  de l'application (celui qui apparait sous windows comme la propriété "démarrer dans" des raccourcis).

                Le problème avec mac (et avec linux), c'est qu'ils mettent en oeuvre une politique de gestion des droits sur les dossiers beaucoup plus fine et"implacable" que sous windows. Si, en tant qu'utilisateur de ton application, tu n'as pas les droits adaptés au dossier qui la contient, tu pourras danser sur ta tête, le système d'exploitation refusera obstinément de te laisser accéder au dossier en question.

                Et, par conséquent, si tu n'as pas les droits d'écriture sur le dossier de ton application, l'application ne pourra pas créer de nouveaux fichiers dans le dossier en question.

                Ce que tu dois faire, c'est donc définir très précisément le dossier dans lequel tu veux créer ton fichier, en t'assurant d'avoir les droits adéquats pour pouvoir le faire.  L'idéal est de créer le fichier dans un (sous) dossier se trouvant dans /home/<nom_d'utilisateur>, en t'assurant bien sur

                • que ce dossier existe
                • que l'utilisateur est le propriétaire légal du dossier en question
                • que les droits d'écriture aient été définis correctement

                Et, bien, sur, de faire en sorte que ton fichier soit écrit dans le dossier indiqué ;)

                • Partager sur Facebook
                • Partager sur Twitter
                Ce qui se conçoit bien s'énonce clairement. Et les mots pour le dire viennent aisément.Mon nouveau livre : Coder efficacement - Bonnes pratiques et erreurs  à éviter (en C++)Avant de faire ce que tu ne pourras défaire, penses à tout ce que tu ne pourras plus faire une fois que tu l'auras fait
                  24 octobre 2019 à 15:18:06

                  YESSSSSSSSSS 

                  c'est bon merci koala01!!

                  Si jamais quelqu'un sur mac cherche il faut tout simplement viré iCloud drive dans les réglages car cela interdit l'ouverture ...

                  Et il faut mettre cela dans ‎⁨Macintosh HD⁩ ▸ ⁨Utilisateurs⁩ ▸ "VotreNom"⁩ ▸ ⁨Bureau⁩ ▸ ⁨"NomDeVotreCode"⁩ ▸ ⁨"NomDeVotreCode"

                  en tout cas cela a marcher pour moi ! 

                  Merci a vous tous de m'avoir aider.

                  mais maintenant je rencontre un nouveau problème :(

                  je n'arrive pas a insérer de caractère dans le fichier ...

                  je met le code au cas où

                  int main(int argc, const char * argv[])
                  {
                      
                      
                      FILE* fichier = NULL;
                     
                      fichier = fopen("test.txt", "w");
                      
                      if (fichier != NULL)
                      {
                          fputc('A', fichier);
                          printf("ça fonctionne ");
                          fclose(fichier);
                          
                      }
                      return 0;
                      
                  }

                  lors de la compilation cela marque "ça fonctionne"

                  mais quand j'ouvre le fichier, il est vide!

                  voilà merci d'avance!

                  -->18h52 : Bon après nombreuses recherche enfaite xCode ne trouve pas le fichier et lorsque je le cherche avec le terminale cela me met fichier inexistant donc le problème viens donc du fichier

                  Qu'en pensez vous ?

                  -->19h19 : J'ai enfin réussi houraaaaaaaaaa j'ai simplement fait glisser le fichier dans xcode et cela ma donner le chemin absolu c'était tout bête

                  sujet résolu merci de votre aide.

                  -
                  Edité par on_L'apprenti 24 octobre 2019 à 19:21:31

                  • Partager sur Facebook
                  • Partager sur Twitter

                  Creation Fichier sous Mac

                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                  • Editeur
                  • Markdown