_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