Partage
  • Partager sur Facebook
  • Partager sur Twitter

mkdir(), mettre une chaine variable en argument

une astuce puisque l'argument est const ?

    8 août 2006 à 0:03:52

    J'aai la date du jour dans une variable et j'aimerai créer un dossier portant pour nom la date du jour.
    Manque de bol, la fonction mkdir de dir.h prend en argument une chaine constante d'après ce que j'ai compri, donc comment dois je m'y prendre ?
    • Partager sur Facebook
    • Partager sur Twitter
      8 août 2006 à 0:10:33

      le const veux juste dire que la fonction mkdir ne modifiera pas la chaine de caractère qui lui est passé en argument,
      donc tu peut passer en argument la date et le jour tant qu'il sont stocké dans un chaine de caractère.
      • Partager sur Facebook
      • Partager sur Twitter
        8 août 2006 à 9:54:02

        time_t t;
            char *chemin;
         
               
            chemin=(char*)malloc(sizeof(char)*50);
            chemin[0]='.';chemin[1]='/';chemin[2]='\0';
            time(&t);
            strcat(chemin,ctime(&t));
            printf("%s\n",chemin);
           
            if(mkdir(chemin))
                printf("Erreur lors de la creation du repertoire\n");
           

        J'ai mon erreur a chaque fois. Que dois je faire ?
        • Partager sur Facebook
        • Partager sur Twitter
          8 août 2006 à 10:39:49

          Deja laisse tomber l'allocation dynamique elle est pas très utilise a mon avis. Creer plutot un tableau de char de 1024 caractere, je pence que c'est suffisant. Et enfin utilise la fonction suivant
          sprintf(taVariable, "./%d_%d_%d.txt",jour,mois,année)
          et voila tu aura une chaine de caractere contenant l'adresse d'un fichier composé du jour du mois et de l'année.
          • Partager sur Facebook
          • Partager sur Twitter
            8 août 2006 à 10:59:36

            C'est normal que ton erreur apparaisse à chaque fois. Regarde ton code :
            if(mkdir(chemin))
                    printf("Erreur lors de la creation du repertoire\n");

            En gros ton code demande : si la fonction mkdir(chemin) a réussi, alors afficher l'erreur machin.
            • Partager sur Facebook
            • Partager sur Twitter
              8 août 2006 à 15:03:00

              La fonction 'mkdir' renvoit -1 quand la création du répertoire rate et 0 quand elle réussit, donc ça marche.
              J'ai trouvé d'où venait l'erreur : ctime(&t) met la date avec des ':' qui séparent les secondes des minutes, voila ce qui foirait. windows refuse de créer un dossier avec ':' dans le nom.
              • Partager sur Facebook
              • Partager sur Twitter
                8 août 2006 à 20:39:40

                si l prototype contien const sa veux juste dire que il ne peut pas la changer dans la fonction.
                • Partager sur Facebook
                • Partager sur Twitter
                  9 août 2006 à 11:49:38

                  Citation : dark-lord

                  Deja laisse tomber l'allocation dynamique elle est pas très utilise a mon avis. Creer plutot un tableau de char de 1024 caractere, je pence que c'est suffisant.



                  Pourquoi 1024 ? Qu'est-ce que la taille probable du buffer (BUFSIZE) vient faire là dedans ? Ne serait-il pas plus judicieux (après j'en sais rien), étant donné que le but du programme est créer un fichier portant le nom contenu dans 'chemin', de lui assigner la taille FILENAME_MAX ?
                  • Partager sur Facebook
                  • Partager sur Twitter

                  mkdir(), mettre une chaine variable en argument

                  × 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