Pb de suppression d'un fichier text en C

Résolu/Fermé
Utilisateur anonyme - 20 janv. 2009 à 19:11
 Utilisateur anonyme - 20 janv. 2009 à 21:09
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?
A voir également:

9 réponses

Utilisateur anonyme
20 janv. 2009 à 19:30
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
Utilisateur anonyme
20 janv. 2009 à 19:45
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
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
20 janv. 2009 à 20:31
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
Utilisateur anonyme
20 janv. 2009 à 20:22
quelqu'un peut il m'aider svp ?
0
Utilisateur anonyme
20 janv. 2009 à 20:31
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
20 janv. 2009 à 20:32
Re,

lorsque je fait remove (filename); rien ne se passe
filename contient quoi?
0
Utilisateur anonyme
20 janv. 2009 à 20:38
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
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
20 janv. 2009 à 20:47
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
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
20 janv. 2009 à 20:45
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
Utilisateur anonyme
20 janv. 2009 à 20:56
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
Utilisateur anonyme
20 janv. 2009 à 21:09
: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