🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: fr.comp.lang.c
Article #15163

Re: fwrite et setvbuf

#15163
From: Harpo
Date: Sat, 08 Oct 2005 15:25
39 lines
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-mail
References: <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