Функция библиотеки C -fflush()

Стандартная библиотека C - <stdio.h>

Описание

Функции библиотеки Cint fflush(FILE *stream)Используется для сброса выходного буфера.

fflush() — это функция в стандартной библиотеке C, которая немедленно записывает данные из буфера в файл или устройство, связанное с потоком.

Для входных потоков её поведение не определено, и вызова этой функции для входных потоков следует избегать.

Объявление

Ниже приведено объявление функции fflush().

int fflush(FILE *stream)

Параметр

  • stream-- Указатель на тип FILE, обозначающий целевой поток, буфер которого нужно сбросить. FILE — это структура, представляющая открытый файловый поток.

    • ifstreamявляетсяNULL, то она сбросит буферы всех выходных потоков.
    • ifstreamЕсли это файловый указатель, то сбросить выходной буфер этого файлового потока.

Возвращаемое значение

  • Если буфер успешно сброшен,fflush()Возвращает 0.

  • Если возникает ошибка, возвращаетEOF, и устанавливает индикатор ошибки (ferror)。

Пример

В следующем примере демонстрируется использование функции fflush().

Пример

#include <stdio.h> int main() { FILE *fp; char *filename = "example.txt"; char *data = "Hello, World!"; // Открыть файл для записи fp = fopen(filename, "w"); if (fp == NULL) { printf("Не удалось открыть файл %s\n", filename); return 1; } // Записать данные в файл fprintf(fp, "%s", data); // Сбросить буфер, чтобы гарантировать запись данных в файл if (fflush(fp) == 0) { printf("Данные успешно записаны в файл.\n"); } else { printf("Произошла ошибка при сбросе буфера.\n"); } // Закрыть файл fclose(fp); return 0; }

Пояснение к коду:

  • Открыть файл: Используйтеfopen()Откройте файл с именемexample.txtФайл открывается для записи.

  • Запишите данные: используйтеfprintf()Строка"Hello, World!"Запишите в файл.

  • Сбросьте буфер: вызовитеfflush(fp)Убедитесь, что данные записываются в файл немедленно, а не остаются в буфере.

  • Проверьте возвращаемое значение: еслиfflush()Возвращает 0, что означает, что буфер был успешно сброшен; в противном случае это указывает на то, что произошла ошибка.

  • Закройте файл: используйтеfclose()Закройте файл.

Data successfully written to the file.

Программа открывает файл example.txt и записывает строку "Hello, World!".

fflush(fp) успешно очищает буфер и возвращает 0, поэтому выводит "Данные успешно записаны в файл."

Содержимое файла example.txt будет:

Hello, World!

Стандартная библиотека C - <stdio.h>

Другие расширения