_flushall
Сбрасывает все потоки; очищает все буферы.
Синтаксис
int _flushall( void );
Возвращаемое значение
_flushall
возвращает число открытых потоков (ввода и вывода). Не возвращается ошибка.
Замечания
По умолчанию функция _flushall
записывает в соответствующие файлы содержимое всех буферов, связанных с открытыми потоками вывода. Все буферы, связанные с открытыми входными потоками, очищаются. (Эти буферы обычно обслуживаются операционной системой, которая автоматически определяет оптимальное время записи данных на диск: при заполнении буфера, при закрытии потока или при нормальном завершении программы без закрытия потоков).
Если после вызова функции _flushall
выполняется операция чтения, из входных файлов в буферы считываются новые данные. После вызова функции _flushall
все потоки остаются открытыми.
Предусмотренная в библиотеке времени выполнения функция фиксации на диск позволяет обеспечить запись критически важных данных непосредственно на диск, а не в буферы операционной системы. Без перезаписи существующей программы эту функцию можно включить, связав файлы объектов программы с Commode.obj. В результирующем исполняемом файле вызовы для _flushall
записи содержимого всех буферов на диск. Файл Commode.obj влияет только на функции _flushall
и fflush
.
Сведения об управлении функцией фиксации на диск см. в разделе "Потоковые операции ввода-вывода" fopen
и _fdopen
.
По умолчанию глобальное состояние этой функции ограничивается приложением. Чтобы изменить это поведение, см . статью "Глобальное состояние" в CRT.
Требования
Function | Обязательный заголовок |
---|---|
_flushall |
<stdio.h> |
Дополнительные сведения о совместимости см. в разделе Совместимость.
Пример
// 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
См. также
Потоковый ввод-вывод
_commit
fclose
, _fcloseall
fflush
setvbuf