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 :

unlink et remove


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 299
    Par défaut unlink et remove
    Bonjour,
    pourquoi si je fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    remove("toto.txt");
    fopen("toto.txt","w+");
    le fichier toto.txt ne se crée pas mais si je fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    remove("toto.txt");
    fopen("toto.txt","a+");
    alors il se crée ?

    Merci

  2. #2
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Je ne reproduis pas avec ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    #include <stdlib.h>
    #include <stdio.h>
     
    int main(int argc, char** argv)
    {
      if (argc != 2) {
        fprintf(stderr, "Need fopen second argument\n");
        return 1;
      }
      if (remove("toto.txt") != 0) {
        perror("remove failed");
      }
      FILE* f = fopen("toto.txt", argv[1]);
      if (f == NULL) {
        perror("fopen failed");
      } else if (fclose(f) != 0) {
        perror("fclose failed");
      }
    }
    Exemple minimal et complet pour reproduire le problème SVP.

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 299
    Par défaut
    effectivement, j'ai fait un exemple tout bête qui marche bien...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
    #include<stdlib.h>
    #include<stdio.h>
    #include<string.h>
    #include <errno.h>
     
    #define FOPENERROR fprintf( stderr, "%s %d: fopen() failed (%s)\n",__FILE__, __LINE__, strerror( errno ))
     
     
    int main()
    {
      remove("toto.txt");
     
      FILE * pfile=fopen("toto.txt","a+");
      if(pfile==NULL)
      {
        FOPENERROR;
        return(EXIT_FAILURE);
      }
     
      fprintf(pfile,"%d\t%d\n",2,3);
     
      fclose(pfile);
     
      pfile=fopen("toto.txt","a+");
      if(pfile==NULL)
      {
        FOPENERROR;
        return(EXIT_FAILURE);
      }
     
      fprintf(pfile,"%d\t%d\n",4,5);
     
      fclose(pfile);
     
      return EXIT_FAILURE;
    }
    Mon pb ne vient donc pas de là.
    Je fais de la programmation parallèle avec MPI et ce que je ne comprends pas, c'est qu'un coup mon fichier toto.txt est créé mais un autre coup il n'est pas créé. Je n'y comprends vraiment rien.

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 299
    Par défaut
    OK j'ai trouvé, je faisais un remove sur tous mes noeuds donc forcément le fichier n'était pas créé.
    Je suis rassuré.

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 09/10/2005, 14h56
  2. problème de remove
    Par c_Linoa dans le forum C++
    Réponses: 13
    Dernier message: 28/04/2005, 11h21
  3. [debutant] remove() pourri?
    Par JulienDuSud dans le forum Windows
    Réponses: 4
    Dernier message: 05/12/2004, 17h31
  4. [langage] unlink trop bavard
    Par Greg01 dans le forum Langage
    Réponses: 5
    Dernier message: 20/07/2004, 22h52
  5. [langage] unlink ?!
    Par myjuna dans le forum Langage
    Réponses: 13
    Dernier message: 02/07/2004, 11h39

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