[C/C++] utilisation de remove()

Résolu/Fermé
gachneux Messages postés 10 Date d'inscription mercredi 23 mai 2007 Statut Membre Dernière intervention 5 juin 2007 - 5 juin 2007 à 14:58
 Hich - 30 mars 2011 à 15:22
Bien le bonjour,

Ben voilà en fait j'ai un petit problème à utiliser la fonction
remove(const char *path)


il me faudrait supprimer des comptes utilisateurs dans un programme mais ça ne fonctionne pas et cette fonction me renvoit -1
D'autant plus que lorsque je supprime des fichiers temporaires propres au programme ça fonctionne nickel!

J'ai bien cherché sur le net, mais tout ce que je trouve c'est que -1 correspond à une erreur de permission sur le fichier.....
..??!??..
dans la mesure où c'est le programme qui crée ces fichiers je ne comprends pas...
Si vous pouviez m'éclairer s'il vous plait...

Voici le code (simplifié) au cas où:

char dirProvider[50] = "";
char provider[25] = "myProvider";

sprintf (dirProvider, "DATA/providers/%s.conf", provider);
printf("%ld", remove (dirProvider));


En vous remerciant d'avoir lu jusque là! ;)

10 réponses

kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
5 juin 2007 à 15:28
En fait on peut se dire que soit le chemin n'est pas bon, soit il est encore ouvert par un programme quelconque (par exemple ton appli).
2
gachneux Messages postés 10 Date d'inscription mercredi 23 mai 2007 Statut Membre Dernière intervention 5 juin 2007
5 juin 2007 à 15:37
Alléluiah!!!!!

Sans vouloir te jeter des fleurs je crois que tu es un génie!
Effectivement j'avais tout simplement oublié de refermer ce fichier au début du prog lors de la création de la liste!

Bon sang tu m'as retiré une fière chandelle du pied!

Merci encore très cher kilian!
0
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
5 juin 2007 à 15:50
:-)
-1
O_o retiré un épine plutôt non ?!
0
lool
0
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
5 juin 2007 à 15:01
Salut,

C'est sous Windows où sous Linux?
-1
gachneux Messages postés 10 Date d'inscription mercredi 23 mai 2007 Statut Membre Dernière intervention 5 juin 2007
5 juin 2007 à 15:02
heu... ben là c'est sous windows mais je suis sensé faire un prog portable... ça pose problème?

(merci de ta réponse aussi rapide en tout cas!)
-1

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

Posez votre question
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
5 juin 2007 à 15:04
On m'appele flash parfois!

Si tu fais un clic droit sur tes fichiers nouvellement créés par ton appli, quels sont leurs propriétés?
Lecture seule? Cachés?
-1
gachneux Messages postés 10 Date d'inscription mercredi 23 mai 2007 Statut Membre Dernière intervention 5 juin 2007
5 juin 2007 à 15:06
alors il y a "archive" de coché, mais pas "lecture seule"...
et il n'est pas caché non plus!
-1
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
5 juin 2007 à 15:13
Tu peux le décocher? Puis rééssayer avec ton appli....?
-1
gachneux Messages postés 10 Date d'inscription mercredi 23 mai 2007 Statut Membre Dernière intervention 5 juin 2007
5 juin 2007 à 15:18
ça ne change rien...
Mais en même temps mes fichiers temporaires ont archivé de coché eux aussi, mais ils se suppriment...

En fait la seule vraie différence c'est que pour mes fichiers temporaires j'écris directement le chemin, du genre:
remove("DATA/temp.list");

Alors j'ai essayé avec une variable mais rien ne change: les fichiers temporaires n'ont aucun problème...

D'où ça pourrait venir à ton avis?
-1
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
5 juin 2007 à 15:21
Et quand tu mets le chemin en dur pour un de ces fichiers récalcitrants ça fonctionne?
-1
gachneux Messages postés 10 Date d'inscription mercredi 23 mai 2007 Statut Membre Dernière intervention 5 juin 2007
5 juin 2007 à 15:28
oui oui ça fonctionne...

en fait quand j'essaye avec une variable pour les fichiers temporaires c'est du style:
sprintf(dirTemp, "DATA/temp.list");


Tu crois que c'est dû au formatage?
sprintf(dirProvider,  "DATA/providers/%s.conf", provider);
-1
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
5 juin 2007 à 15:29
Fait un printf sur dirProvider après cette ligne, et vois ce que ça donne...
-1