| fflush(3) | Library Functions Manual | fflush(3) |
fflush - сбрасывает поток
Стандартная библиотека языка C (libc, -lc)
#include <stdio.h>
int fflush(FILE *_Nullable stream);
Для потоков вывода функция fflush() принудительно записывает все буферизированные в пользовательском пространстве данные в устройство вывода данных или корректирует stream посредством определённой для него функции записи.
Для потоков ввода, связанных с файлами, в которых возможно позиционирование (например, дисковые файлы, но не каналы или терминалы), функция fflush() отбрасывает все буферизированные данные, которые были получены из соответствующего файла, но не обработаны приложением.
При этом поток остается открытым.
Если аргумент stream равен NULL, то fflush() сбрасывает данные всех открытых потоков вывода.
Неблокирующий аналог смотрите в unlocked_stdio(3).
При успешном выполнении возвращается нулевое значение. В противном случае возвращается EOF и errno присваивается код ошибки.
Функция fflush() может завершиться с ошибкой и присвоить errno любое значение из определённых для write(2).
Описание терминов данного раздела смотрите в attributes(7).
| Интерфейс | Атрибут | Значение |
| fflush() | Безвредность в нитях | MT-Safe |
C11, POSIX.1-2008.
C89, 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 <azamat.hackimov@gmail.com>, Dmitry Bolkhovskikh <d20052005@yandex.ru>, Yuri Kozlov <yuray@komyakino.ru>, Иван Павлов <pavia00@gmail.com> и Kirill Rekhov <krekhov.dev@gmail.com>
Этот перевод является свободной программной документацией; он распространяется на условиях общедоступной лицензии GNU (GNU General Public License - GPL, https://www.gnu.org/licenses/gpl-3.0.html версии 3 или более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.
Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом разработчику(ам) по его(их) адресу(ам) электронной почты или по адресу списка рассылки русских переводчиков.
| 2 мая 2024 г. | Справочные страницы Linux 6.9.1 |