_flushall
Vacía todos los flujos y borra todos los búferes.
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 tener que volver a escribir un programa existente, puede habilitar esta característica vinculando los archivos objeto del programa a Commode.obj. En el archivo ejecutable resultante, las llamadas a _flushall escriben 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, vea E/S de flujos, fopen y _fdopen.
Requisitos
Función |
Encabezado necesario |
---|---|
_flushall |
<stdio.h> |
Para obtener más información de compatibilidad, vea Compatibilidad en la Introducción.
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 );
}