Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Сбрасывает все потоки; очищает все буферы.
Синтаксис
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