Поделиться через


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 до вызова этой функции.

См. раздел _doserrno, errno, _sys_errlist, and _sys_nerr для дополнительных сведений по этим и другим кодам возврата.

Функция _fcloseall закрывает все открытые потоки, кроме stdin, stdout, stderr (и, в MS-DOS, _stdaux и _stdprn). Она также закрывает и удаляет все временные файлы, созданные tmpfile. В обеих функциях все буферы, связанные с потоком, сбрасываются до закрытия. Размещенные системой буферы освобождаются, когда закрывается поток. Буферы, назначенные пользователем с помощью функций setbuf и setvbuf, не освобождаются автоматически.

Замечание: Когда эти функции используются, чтобы закрыть поток, основной идентификатор файла и системный дескриптор файла (или сокет) закрываются, как и поток. Таким образом, если файл был изначально открыт как дескриптор файла или идентификатор файла и закрыт с fclose, не следует дополнительно вызывать _close, чтобы закрыть идентификатор файла; не вызывайте функцию Win32 CloseHandle, чтобы закрыть дескриптор файла.

fclose и _fcloseall содержат код для защиты от влияния других потоков. Для неблокирующей версии fclose см. _fclose_nolock.

Требования

Функция

Обязательный заголовок

fclose

<stdio.h>

_fcloseall

<stdio.h>

Дополнительные сведения о совместимости см. в разделе Совместимость во введении.

Пример

См. пример для fopen.

Эквивалент в .NET Framework

См. также

Ссылки

Потоковый ввод-вывод

_close

_fdopen, _wfdopen

fflush

fopen, _wfopen

freopen, _wfreopen