_flushall
Scarica tutti i flussi; cancella tutti i buffer.
Sintassi
int _flushall( void );
Valore restituito
_flushall
restituisce il numero di flussi aperti (input e output). Non viene restituito alcun errore.
Osservazioni:
Per impostazione predefinita, la funzione _flushall
scrive sui file appropriati i contenuti di tutti i buffer associati ai flussi di output aperti. In tutti i buffer associati ai flussi di input aperti vengono cancellati i contenuti correnti. (Questi buffer sono normalmente gestiti dal sistema operativo, il quale determina il momento ottimale per scrivere automaticamente i dati sul disco: quando un buffer è pieno, quando un flusso viene chiuso o quando un programma termina normalmente senza chiudere i flussi).
Se una lettura segue una chiamata a _flushall
, i nuovi dati vengono letti dai file di input nei buffer. Tutti i flussi rimangono aperti dopo la chiamata a _flushall
.
La funzionalità di commit su disco della libreria di runtime consente di assicurare che i dati critici siano scritti direttamente su disco anziché nei buffer del sistema operativo. Senza riscrivere un programma esistente, è possibile abilitare questa funzionalità collegando i file oggetto del programma con Commode.obj. Nel file eseguibile risultante chiama per _flushall
scrivere il contenuto di tutti i buffer su disco. Solo _flushall
e fflush
sono interessati da Commode.obj.
Per informazioni sul controllo della funzionalità di commit su disco, vedere I/O di Flusso, fopen
e _fdopen
.
Per impostazione predefinita, lo stato globale di questa funzione è limitato all'applicazione. Per modificare questo comportamento, vedere Stato globale in CRT.
Requisiti
Funzione | Intestazione obbligatoria |
---|---|
_flushall |
<stdio.h> |
Per altre informazioni sulla compatibilità, vedere Compatibility (Compatibilità).
Esempio
// crt_flushall.c
// This program uses _flushall
// to flush all open buffers.
#include <stdio.h>
int main( void )
{
int numflushed;
numflushed = _flushall();
printf( "There were %d streams flushed\n", numflushed );
}
There were 3 streams flushed