Поделиться через


_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 );
}
  

Эквивалент в .NET Framework

См. также

Ссылки

Потоковый ввод-вывод

_commit

fclose, _fcloseall

fflush

setvbuf