Compartir vía


_flushall

Vacía todos los flujos y borra todos los búferes.

Sintaxis

int _flushall( void );

Valor devuelto

_flushall devuelve el número de flujos abiertos (entrada y salida). No se devuelve ningún error.

Comentarios

De forma predeterminada, la función _flushall escribe en los archivos correspondientes el contenido de todos los búferes asociados a los flujos de salida abiertos. Se borra el contenido actual de todos los búferes asociados a los flujos de entrada abiertos. Normalmente, el sistema operativo mantiene estos búferes y determina el momento óptimo para escribir los datos automáticamente en el disco: cuando el búfer está lleno, cuando se cierra un flujo o cuando un programa finaliza con normalidad sin cerrar flujos.

Si una lectura sigue a una llamada a _flushall, se insertan más datos de los archivos de entrada en los búferes. Todos los flujos permanecen abiertos después de la llamada a _flushall.

La característica de confirmación en disco de la biblioteca en tiempo de ejecución permite asegurarse de que los datos críticos se escribe directamente en el disco y no en los búferes del sistema operativo. Sin volver a escribir un programa existente, puede habilitar esta característica vinculando los archivos de objeto del programa con Commode.obj. En el archivo ejecutable resultante, llama a para _flushall escribir el contenido de todos los búferes en el disco. Commode.obj solo afecta a _flushall y fflush.

Para obtener información sobre cómo controlar la característica de confirmación en disco, consulte E/S de secuencia, fopen y _fdopen.

De manera predeterminada, el estado global de esta función está limitado a la aplicación. Para cambiar este comportamiento, consulte Estado global en CRT.

Requisitos

Función Encabezado necesario
_flushall <stdio.h>

Para obtener más información sobre compatibilidad, consulte Compatibilidad.

Ejemplo

// 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

Consulte también

E/S de secuencia
_commit
fclose, _fcloseall
fflush
setvbuf