Pb de suppression d'un fichier text en C

Résolu
slt,
je programme en C et j'ai un problème lors de la suppression d'un fichier
lorsque je fait remove (filename); rien ne se passe
pourquoi?
Configuration: Windows Vista
Firefox 3.0.4

9 réponses

  1. j'ai touvé le pb mais je ne sais pas le resoudre
    quand j'utilise la commande system("del filename.txt") après l'execution il m'affiche que le fichier est utilisée par un autre processus, ce qui reste c'est de trouver le processus responsable. comment le faire? y a-t-il une fonction qui peut determiner le processus qui utilise le fichier ?
    0
    1. j'ai une question à vous demander: est ce qu'on peut fermer un fichier dans la condition d'ouverture c_a_d:

      FILE *in = fopen("fichier.txt","mode");

      if(in){

      fclose(in);
      }

      ou est ce qu'on doit obligatoirement faire

      if(in){

      }

      fclose(in); //en dehors de la condition
      0
      1. Modérateur
        Salut,

        Oui, tu peux mais c'est un peut inutile.
        Normalement on vérifie si le pointeur est NULL donc le fichier ne peux pas être ouvert.
        Le reste suit normalement
        FILE *in;
        
        if (NULL==(in = fopen("fichier.txt","mode")))
          return 1;
        /* si la condition if est fausse alors le fichier est ouvert donc tu peux
        écrire ton code */
        0
    2. quelqu'un peut il m'aider svp ?
      0
      1. pourquoi lors du deboguage en pas à pas le curseur ne passe pas par fclose() ? (c_a_d il ne la selectionne pas mais il la depasse).
        0
        1. Modérateur
          Re,

          lorsque je fait remove (filename); rien ne se passe
          filename contient quoi?
          0
          1. ben il contien des lignes de textes.
            le problème c'est que la fermeture du fichier ne se fait pas correctement
            j'ai vérifier avec ceci

            if(fclose(in)==0) //normalement ca retourne vrai si la fermeture c'est passé avec succes
            printf("fermeture avec succes");

            mais là rien ne se passe

            je ne sais pas pourquoi
            0
            1. Modérateur
              Re,

              ben il contien des lignes de textes.
              Ben, justement il devrait être un chemin vers un fichierr
              Je pense que tu n'as pas saisie pas question.

              remove(filename);
              filename doit être un chemin vers un fichier sur ton disque
              0
          2. Modérateur
            Re,

            Chez moi ça marche
            lami20j@debian:~$ cat test.c
            #include<stdio.h>
            
            int main()
            {
                    FILE *IN;
                    IN=fopen("fic.txt","r");
            
                    if(fclose(IN)==0)
                            printf("ok\n");
                    return 0;
            }
            lami20j@debian:~$ ls -l fic.txt
            -rw-r--r-- 1 lami20j lami20j 0 jan 20 20:42 fic.txt
            lami20j@debian:~$ gcc test.c
            lami20j@debian:~$ ./a.out
            ok

            0
            1. mais le fichier se trouve dans le repertoire de travail pourquoi j'ai a ecrire un chemin?
              et pourquoi la fermeture du fichier ne se fait pas pour moi t'a une idée de ce quii peut la causer?
              0
              1. :D j'ai une bétise, j'ai mis le return avant la fermeture du fichier
                bon merci pour l'aide après tout
                0