Article View: fr.comp.lang.c
Article #15163Re: fwrite et setvbuf
From: Harpo
Date: Sat, 08 Oct 2005 15:25
Date: Sat, 08 Oct 2005 15:25
39 lines
2403 bytes
2403 bytes
Pierre Habouzit wrote: > Je fais un programme qui n'arr�te pas d'�crire des structures binaires > dans un fichier. Ces structures font 24 octets, et je m'�tais laiss� > dire que fwrite �tait bufferis�. > > Apres un peu de recherche, j'ai r�alis� que fwrite bufferisait sur > '\n' par d�taut et que donc il fallait que je fasse un : > > setvbuf(my_file, NULL, _IOFBF, BUFSIZ); > > pour que le fichier soit "fully buffered". (je tiens ca de > setvbuf(3)). > > le hic est que un strace Excellente id�e ! > lors de l'execution du programme me montre > qu'il fait des appels syst�mes 'write' de 24 octets r�curents...... et > je ne fais pourtant aucun fflush. Ce qui veut donc dire que mon ficher > n'est *pas* bufferis�. L'appel de setvbuf a-t-il �t� fait imm�diatemment apr�s fopen( ) ? Quelle est la valeur de BUFSIZ ? Peux-tu poster un petit programme qui fait �a ? > > J'ai essay� plusieurs trucs, ... sans r�sultat notable. Est ce que > quelqu'un aurait une id�e de g�nie m'�vitant de reprogrammer un fwrite > perso ? Ce ne serait pas n�cessairement une mauvaise id�e si tu ne cherches pas la compatibilit� avec des syst�mes non-unix mais plut�t la performance sur ceux-ci. La gestion du buffering est assez triviale et peut �viter des copies de m�moire, le probl�me r�side dans l'utilisation de write( ), notamment le test de la valeur de retour, particuli�rement EINTR, il faut parfois faire des retry.
Technical Details
Message-ID:
<4347e4e7$0$27405$8fcfb975@news.wanadoo.fr>Path:
arc1-ca.pugleaf.net!g2news1.google.com!news3.google.com!news.glorb.com!proxad.net!193.252.118.146.MISMATCH!news.wanadoo.fr!news.wanadoo.fr!not-for-mailReferences:
<4347c389$0$14664$626a14ce@news.free.fr>Show Full Headers
Complete Article Headers
X-Google-Thread: f9822,e69a4cd47d957512 X-Google-Attributes: gidf9822,public X-Google-Language: FRENCH,ASCII Path: arc1-ca.pugleaf.net!g2news1.google.com!news3.google.com!news.glorb.com!proxad.net!193.252.118.146.MISMATCH!news.wanadoo.fr!news.wanadoo.fr!not-for-mail Message-ID: <4347e4e7$0$27405$8fcfb975@news.wanadoo.fr> From: Harpo <trashcan@hotmail.com> Subject: Re: fwrite et setvbuf Newsgroups: fr.comp.lang.c Date: Sat, 08 Oct 2005 17:25:14 +0200 References: <4347c389$0$14664$626a14ce@news.free.fr> Organization: ARG ; Association pour la Rehabilitation du Goto User-Agent: KNode/0.8.2 MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8Bit Lines: 39 NNTP-Posting-Date: 08 Oct 2005 17:25:27 CEST NNTP-Posting-Host: 83.195.126.74 X-Trace: 1128785127 news.wanadoo.fr 27405 83.195.126.74:34891 X-Complaints-To: abuse@wanadoo.fr