fclose()

Закрыть поток

Прототип:

#include <stdio.h>
int fclose( FILE *fp );

Аргументы:

fp
Поток, который планируется закрыть.

Библиотека:

libc

Описание:

Функция fclose() закрывает поток, определяемый fp. Любые незаписанные буферизированные данные сбрасываются в файл перед закрытием. Все непрочитанные буферизированные данные отбрасываются.

Если связанный буфер выделен автоматически, он деаллоцируется.

Возвращаемое значение:

0
Успешное завершение.
EOF
Возникла ошибка. Код ошибки записан в errno.

Коды ошибок:

EAGAIN
Флаг O_NONBLOCK установлен для файлового дескриптора fp, и операция записи для процесса будет отложена.
EBADF
Файловый дескриптор fp некорректен.
EFBIG
Одна из следующих причин:
EINTR
Функция fclose() прервана сигналом.
EIO
Одна из следующих причин:
ENOSPC
На устройстве, содержащем файл, не осталось свободного места.
ENXIO
Запрос был сделан от лица несуществующего устройства, либо запрос лежит вне возможностей устройства.
EPIPE
Попытка записи в канал или FIFO, которые не были открыты для чтения никаким процессом. Потоку также отправляется сигнал SIGPIPE.

Примеры:

#include <stdio.h>
#include <stdlib.h>
int main( void )
{
FILE *fp;
fp = fopen( "stdio.h", "r" );
if ( fp != NULL )
{
fclose( fp );
return (EXIT_SUCCESS);
}
return (EXIT_FAILURE);
}

Классификация:

ANSI, POSIX 1003.1

Безопасность использования
Точка остановки потока
Да
Обработчик прерываний
Нет
Обработчик сигналов
Нет
В потоке
Да

Тематические ссылки:

errno, fcloseall(), fdopen(), fopen(), freopen()




Предыдущий раздел: Описание API системной библиотеки