fclose
, _fcloseall
Закрывает поток (fclose
) или все открытые потоки (_fcloseall
).
Синтаксис
int fclose(
FILE *stream
);
int _fcloseall( void );
Параметры
stream
Указатель на структуру FILE
.
Возвращаемое значение
Функция fclose
возвращает 0, если поток был успешно закрыт. Функция _fcloseall
возвращает общее количество закрытых потоков. Обе функции возвращают EOF
для указания на ошибку.
Замечания
Функция fclose
закрывает stream
. В противном stream
NULL
случае вызывается недопустимый обработчик параметров, как описано в разделе "Проверка параметров". Если выполнение может быть продолжено, функция fclose
присваивает errno
значение EINVAL
и возвращает EOF
. Перед вызовом stream
этой функции рекомендуется всегда проверять указатель.
Дополнительные сведения о кодах возврата см. в разделе errno
, _doserrno
_sys_errlist
и _sys_nerr
.
Функция _fcloseall
закрывает все открытые потоки, кроме stdin
, stdout
, stderr
(а в MS-DOS также _stdaux
и _stdprn
). Она также закрывает и удаляет все временные файлы, созданные tmpfile
. При использовании обеих функций все буферы, связанные с потоком, перед закрытием сбрасываются. При закрытии потока выделенные системой буферы освобождаются. Буферы, назначенные пользователем и setbuf
setvbuf
не выпускаются автоматически.
Примечание.
Когда fclose
или _fcloseall
функции используются для закрытия потока, базовый дескриптор файлов и дескриптор OS (или сокет) также закрываются. Таким образом, если файл был первоначально открыт как дескриптор файла или дескриптор файла и закрыт с fclose
помощью, не вызывайте _close
дескриптор файла и не вызывайте функцию CloseHandle
Win32, чтобы закрыть дескриптор файла.
Функции fclose
и _fcloseall
включают код для защиты от помех от других потоков. Сведения о неблокирующей версии fclose
см. в описании функции _fclose_nolock
.
По умолчанию глобальное состояние этой функции ограничивается приложением. Чтобы изменить это поведение, см . статью "Глобальное состояние" в CRT.
Требования
Function | Обязательный заголовок |
---|---|
fclose |
<stdio.h> |
_fcloseall |
<stdio.h> |
Дополнительные сведения о совместимости см. в разделе Совместимость.
Пример
Пример см. в примере fopen
.
См. также
Потоковый ввод-вывод
_close
_fdopen
, _wfdopen
fflush
fopen
, _wfopen
freopen
, _wfreopen