_flushall
Сбрасываются все потоки; очищаются все буферы.
int _flushall( void );
Возвращаемое значение
_flushall возвращает число открытых потоков (ввода и вывода). Нет какого-либо возврата ошибки.
Заметки
По умолчанию функция _flushall записывает в соответствующие файлы содержимое всех буферов, связанных с открытыми потоками вывода. Все буферы, связанные с открытыми входными потоками, очищаются. (Эти буферы обычно обслуживаются операционной системой, которая определяет оптимальное время записи данных на диск автоматически: если буфер заполнен, при закрытии потока или когда нормально завершается выполнение программы без закрытия потоков).
Если после чтения следует вызов _flushall, новые данные считываются из входных файлов в буферы. Все потоки остаются открытыми после вызова _flushall.
Функция фиксации на диск библиотеки времени выполнения позволяет убедиться в том, что критические данные записаны непосредственно на диск, а не в буферы операционной системы. Можно включить эту функцию без переписывания программы, связав объектные файлы программы с Commode.obj. В появившемся исполняемом файле вызовы _flushall записывают содержимое всех буферов на диск. Только _flushall и fflush подвержены влиянию Commode.obj.
Дополнительные сведения о управлении функцией фиксации на диск см. в разделах Stream I/O, fopen и _fdopen.
Требования
Функция |
Обязательный заголовок |
---|---|
_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 );
}