Функция
fclose
отделяет указанный поток
stream
от связанного с ним файла или набора функций. Если поток использовался
для вывода данных, то все данные, содержащиеся в буфере,
сначала записываются с помощью
fflush(3).
ВОЗВРАЩАЕМЫЕ ЗНАЧЕНИЯ
При успешном завершении возвращается нулевое значение. В противном случае возвращается
EOF
и в глобальную переменную
errno
вписывается код ошибки. В любом случае, дальнейшие попытки доступа
(включая еще один вызов
fclose())
к потоку приведут к неопределенному результату.
НАЙДЕННЫЕ ОШИБКИ
EBADF
Неверный описатель файла, связанный с потоком
stream.
Функция
fclose
при ошибках может установить
errno
в значение, соответствующее ошибкам в процедурах
close(2)
или
fflush(3).
ЗАМЕЧАНИЯ
Обратите внимание, что
fclose
"сбрасывает" буферы: это обеспечивается функциями библиотеки C.
Чтобы гарантировать, что данные действительно физически сохранены на диске,
буферы ядра также должны быть сохранены, например, с помощью функций
sync(2)
или
fsync(2).
СООТВЕТСТВИЕ СТАНДАРТАМ
Функция
fclose
соответствует стандарту ANSI X3.159-1989 (``ANSI C'').