Назва

fclose - закриває потік

Огляд

#include <stdio.h>

int fclose(FILE *stream);

Опис

Функція fclose відокремлює заданий потік stream від свого визначального потоку або набору функцій. Якщо потік використовувався для виводу, всі дані, що знаходяться у буфері, спершу буде записано за використанням fflush(3).

Повернені значення

При вдалому завершенні, повертається 0. У протилежному випадку - EOF і глобальна змінна errno встановлюється для вказівки помилки. У будь-якому випадку, любий подальший доступ (включаючи інший виклик fclose()) до потоку викличе невизначену поведінку.

Коди помилок

EBADF : Дескриптор файлу підставового потоку не є дійсним.

Функція fclose може також зазнати невдачі і встановити errno до кодів помилок, використовуваних у таких функціях як close(2), write(2) або fflush(3).

Примітки

Зауважте, що fclose тільки очищує буфери користувацького простору, надані бібліотекою C. Щоб упевнитись, що дані фізично збережені на диску, необхідно очистити також буфери ядра за допомогою, наприклад, ?sync(2) або ?fsync(2).

Відповідність стандартам

Функція fclose відповідає ANSI X3.159-1989 ("ANSI C").

Дивіться також

close(2), ?fcloseall(3), fflush(3), ?fopen(3), ?setbuf(3)