-
Vider un fichier ouvert
Bonsoir,
Question un peu bête... Voilà à l' intérieur de ma classe qui gère un FILE* , comment faire pour vider ce FILE * , c' est à dire le ramener à la taille 0, une fois ouvert, SANS le refermer. J' ai essayé fflush(FILE*) mais pas de resultat, le fichier reste bizarrement toujours de la même taille.
J' insiste sur le fait que je souhaite faire le vidage avec un fichier ouvert en lecture/écriture sinon la solution est triviale, il suffit de fermer le fichier et de le recréer avec le même nom.
Si vous avez une idée...
Cordialement.
-
C'est bizarre. Il me semblait qu'il y avait une fonction qui permettait de tronquer à partir de la position courante. Etait-ce une extension propriétaire ?
-
Bonsoir,
Moi aussi je le croyais, mais je n' ai pas trouvé. Il existe avec Windows une fonction dans <io.h> qui permet de ramener la taille d' un fichier à zéro avec chsize( int handle, long newsize ). Mais comme je me sers aussi de Linux, cette fonction ne fait partie de la norme ANSI POSIX.
Pourtant proposée dans Kylix 3 ... Mais pas testée car mon Kylix Open Edition est plein de bogues, ( ex impossible de créer une application console ! ) .
C' est dommage que chsize n' a pas été normalisée , car cela pose des problèmes lors du developpement multi-plateformes...
Au fait je me sers de FILE* et non pas de fstream, car je n' ai pas trouvé dans fstream toutes possibilités de FILE*... Même dans boost ? Suis-je aveugle ?
Cordialement.
-
Peut-être avec ftruncate sous Linux ?
-
Bonsoir,
Merçi Mayti4, ça tourne...Difficile d' obtenir de la doc sur C et C++ avec linux, à partir de Kdevelop...
Cordialement.