Ciao a tutti ho il seguente piccolo problema:
due programmi che scrivono alcuni bytes e poi effettuano un ciclo infinito:
main()
{
write(1,"Hello \n",7);
for (;;);
}
e quest'altro:
#include<stdio.h>
main()
{
printf("Hello \n");
for (;;);
}
Essi sembrano equivalenti: entrambi scrivono e poi devono essere interrotti.
Se però si ridirige l'output dei due programmi su un file su disco, oppure non si stampa il \n, non sono ancora equivalenti. Quando il programma (processo) termina perché viene interrotto, il buffer non viene svuotato. Come faccio a utilizzare o usare fflush o setvbuf per rendere il loro comportamento analogo anche in questi casi.