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