|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Naples
Messaggi: 3907
|
[C] Modalità di bufferizzazione
Domani devo fare un esame di laboratorio di sistemi operativi e c'è un esercizio dove devo giustificare la mia risposta che non riesco ad affrontare al meglio!
Ho il primo programma int main (void) { char buf [] = "Ho finito il main\n"; printf(Ho iniziato il main\n"); write (1,buf,10); } e devo dire l'output in 2 casi specifici! a) a.out HO INIZIATO IL MAIN HO FINITO b) a.out > file cat file HO FINITO HO INZIATO IL MAIN Mentre il secondo programma int main (void) { char buf [] = "Ho finito il main\n"; printf(Ho iniziato il main\n"); fflush(1) write (1,buf,10); } a) a.out b)a.out > file cat file Entrambi questi 2 metodi di output mi ritornano HO INIZIATO IL MAIN HO FINITO Ora non so bene come giustificare queste risposte! E' un discorso di bufferizzazione! Printf e Standard Input/Output sono LINE BUFFERED se associati ad un terminale altrimenti FULLY BUFFERED come nel caso della redirezione a FILE! Write invece è UNBUFFERED! Però mi confondo sempre e non so bene come scriverlo sopratutto ocn quella FFLUSH che se non sbaglio mi pare scarica tutto il buffer sull'output! Pls me
__________________
Cancellato stare lucido dal mio vocabolario -Speaker Cenzou- |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Naples
Messaggi: 3907
|
mi sono reso conto che l'altro utente MOLTO probabilmente deve fare il mio stesso esame con la stessa professoressa
__________________
Cancellato stare lucido dal mio vocabolario -Speaker Cenzou- |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 22:59.










me









