Rechercher : dans
Par :

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

Dernière réponse le 5 jun 2007 à 15:50:19 gachneux, le 5 jun 2007 à 14:58:41 
 Signaler ce message aux modérateurs

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à! ;)
Configuration: Windows XP
Firefox 2.0.0.4

Meilleures réponses pour « [C/C++] utilisation de remove() » dans :
Utilisation des sémaphores Système V VoirIntroduction Il n'est pas forcément facile de trouver un mode d'emploi clair des sémaphores System V, surtout en français. Cette astuce ne se veut pas exhaustive, mais on va quand même essayer de débroussailler un peu le chemin et clouer quelques...
VirtualBox - Sauvegarder ses disques durs virtuels VoirLes disques durs de vos machines virtuelles se trouvent, par défaut, dans le chemin suivant : Sous Vista-Sept ---> C:\utilisateurs\nom_d'utilisateur\.VirtualBox\HardDisks Sous Xp ---> C:\Documents and...
Langage C - Les types de données VoirLes types de données Les données manipulées en langage C sont typées, c'est-à-dire que pour chaque donnée que l'on utilise (dans les variables par exemple) il faut préciser le type de donnée, ce qui permet de connaître l'occupation mémoire (le...
Programmation réseau - Les sockets VoirIntroduction aux sockets La notion de sockets a été introduite dans les distributions de Berkeley (un fameux système de type UNIX, dont beaucoup de distributions actuelles utilisent des morceaux de code), c'est la raison pour laquelle on parle...
Les structures en langage C++ VoirDifférence entre une structure et un tableau Un tableau permet de regrouper des éléments de même type, c'est-à-dire codés sur le même nombre de bits et de la même façon. Toutefois, il est généralement utile de pouvoir rassembler des éléments de...

1

kilian, le 5 jun 2007 à 15:01:06

Salut,

C'est sous Windows où sous Linux?

..et le...le...enfin, non parce c'est...ya...quand...bah tu sais là le...

Répondre à kilian

2

gachneux, le 5 jun 2007 à 15:02:35

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!)

Répondre à gachneux

3

kilian, le 5 jun 2007 à 15:04:50

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?

..et le...le...enfin, non parce c'est...ya...quand...bah tu sais là le...

Répondre à kilian

4

gachneux, le 5 jun 2007 à 15:06:48

Alors il y a "archive" de coché, mais pas "lecture seule"...
et il n'est pas caché non plus!

Répondre à gachneux

5

kilian, le 5 jun 2007 à 15:13:45

Tu peux le décocher? Puis rééssayer avec ton appli....?

..et le...le...enfin, non parce c'est...ya...quand...bah tu sais là le...

Répondre à kilian

6

gachneux, le 5 jun 2007 à 15:18:31

ç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?

Répondre à gachneux

7

kilian, le 5 jun 2007 à 15:21:07

Et quand tu mets le chemin en dur pour un de ces fichiers récalcitrants ça fonctionne?

..et le...le...enfin, non parce c'est...ya...quand...bah tu sais là le...

Répondre à kilian

8

gachneux, le 5 jun 2007 à 15:28:00

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);

Répondre à gachneux

10

kilian, le 5 jun 2007 à 15:29:45

Fait un printf sur dirProvider après cette ligne, et vois ce que ça donne...

..et le...le...enfin, non parce c'est...ya...quand...bah tu sais là le...

Répondre à kilian

9

kilian, le 5 jun 2007 à 15:28:48

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).

..et le...le...enfin, non parce c'est...ya...quand...bah tu sais là le...

Répondre à kilian

11

gachneux, le 5 jun 2007 à 15:37:51

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!

Répondre à gachneux

12

 kilian, le 5 jun 2007 à 15:50:19

:-)

..et le...le...enfin, non parce c'est...ya...quand...bah tu sais là le...

Répondre à kilian