Macro printf + flush
Le
Pim
Bonjour,
Je souhaite faire une macro qui
reprend les paramètres de printf (attention c spécial)
mais qui ajoute fflush(stout);
afin de flusher à chaque printf.
Comment s'y prendre?
A défaut d'une macro une routine.
Par avance, je vous remercie.
Je souhaite faire une macro qui
reprend les paramètres de printf (attention c spécial)
mais qui ajoute fflush(stout);
afin de flusher à chaque printf.
Comment s'y prendre?
A défaut d'une macro une routine.
Par avance, je vous remercie.

Poser une question


Macro printf + flush,
Pim ?crivait dans fr.comp.lang.c :
Bonjour,
Est-ce que ceci derait l'affaire ?
#define printf(...) ({ int _ios; _ios = fprintf(stdout, __VA_ARGS__);
fflush(stdout); _ios; )}
Personnellement, j'attaquerais par setvbuf()...
JKB
--
Le cerveau, c'est un véritable scandale écologique. Il représente 2% de notre
masse corporelle, mais disperse à lui seul 25% de l'énergie que nous
consommons tous les jours.
Re: Macro printf + flush,
JKB ?crivait dans fr.comp.lang.c :
Groumphfff... Ferait !
J'oubliais, c'est une GNUerie. On peut aussi faire avec une fonction
à grands coups de stdarg, mais je vous laisse faire l'exercice.
JKB
--
Le cerveau, c'est un véritable scandale écologique. Il représente 2% de notre
masse corporelle, mais disperse à lui seul 25% de l'énergie que nous
consommons tous les jours.
le 12/06/2010 à 15:48, Pim a écrit dans le message
Non testé, merci de me communiquer ma note.
int
printff(const char *format, ...)
{
int ret;
va_list ap;
va_start(ap, format);
ret = vprintf(format, ap);
va_end(ap);
if (ret)
fflush(stdout);
return ret;
}
--
Benoit Izac