_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, fopene _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

Vedi anche

I/O di flusso
_commit
fclose, _fcloseall
fflush
setvbuf