fflush -
сбрасывает
поток
Standard C library (
libc,
-lc)
#include <stdio.h>
int fflush(FILE *stream);
Для
потоков
вывода
функция
fflush()
принудительно
записывает
все
буферизированные
в
пользовательском
пространстве
данные в
устройство
вывода
данных или
корректирует
stream
посредством
определённой
для него
функции
записи.
Для
потоков
ввода,
связанных
с файлами, в
которых
возможно
позиционирование
(например,
дисковые
файлы, но не
каналы или
терминалы),
функция
fflush()
отбрасывает
все
буферизированные
данные,
которые
были
получены
из
соответствующего
файла, но не
обработаны
приложением.
При этом
поток
остается
открытым.
Если
аргумент
stream
равен NULL, то
fflush()
сбрасывает
данные
всех
открытых
потоков
вывода.
Неблокирующий
аналог
смотрите в
unlocked_stdio(3).
При
успешном
выполнении
возвращается
нулевое
значение. В
противном
случае
возвращается
EOF и
errno
присваивается
код ошибки.
- EBADF
- Поток stream
не открыт
или не
открыт для
записи.
Функция
fflush()
может
завершиться
с ошибкой и
присвоить
errno любое
значение
из
определённых
для
write(2).
Описание
терминов
данного
раздела
смотрите в
attributes(7).
Интерфейс |
Атрибут |
Значение |
fflush() |
Безвредность
в нитях |
MT-Safe |
C99, POSIX.1-2001, POSIX.1-2008.
В POSIX.1-2001 не
определено
поведение
для сброса
потоков
ввода, но но
это
описано в
POSIX.1-2008.
Заметим,
что
fflush()
сбрасывает
буферы
только
пользовательского
пространства,
заданные
библиотекой
Си. Чтобы
гарантировать,
что данные
действительно
физически
сохранены
на диске,
буферы
ядра также
должны
быть
сохранены,
например, с
помощью
вызова
sync(2)
или
fsync(2).
fsync(2),
sync(2),
write(2),
fclose(3),
fileno(3),
fopen(3),
fpurge(3),
setbuf(3),
unlocked_stdio(3)
Русский
перевод
этой
страницы
руководства
был сделан
Azamat Hackimov <
[email protected]>, Dmitry Bolkhovskikh
<
[email protected]>, Yuri Kozlov <
[email protected]> и
Иван
Павлов <
[email protected]>
Этот
перевод
является
бесплатной
документацией;
прочитайте
Стандартную
общественную
лицензию GNU
версии 3
или более
позднюю,
чтобы
узнать об
условиях
авторского
права. Мы не
несем
НИКАКОЙ
ОТВЕТСТВЕННОСТИ.
Если вы
обнаружите
ошибки в
переводе
этой
страницы
руководства,
пожалуйста,
отправьте
электронное
письмо на
[email protected]