Закрыть поток
#include <stdio.h>
                                       
int fclose( FILE *fp );
  
    - fp
 - Поток, который планируется закрыть.
 
  
   
libc
Функция fclose() закрывает поток, определяемый fp. Любые незаписанные буферизированные данные сбрасываются в файл перед закрытием. Все непрочитанные буферизированные данные отбрасываются.
Если связанный буфер выделен автоматически, он деаллоцируется.
  
    - 0
 - Успешное завершение.
 
    - EOF
 - Возникла ошибка. Код ошибки записан в errno.
 
  
   
 
  -  EAGAIN   
 -  Флаг 
O_NONBLOCK установлен для файлового дескриптора fp, и операция записи для процесса будет отложена.     -  EBADF   
 -  Файловый дескриптор fp некорректен.    
 -  EFBIG   
 -  Одна из следующих причин:  
  -  Попытка выполнить запись в файл, достигший максимального размера.  
 -  Попытка выполнить запись в файл, размер которого превышает предельный размер файла процесса.  
 -  Файл является обычным файлом, и произошла попытка выполнить запись с максимальным смещением или за пределы потока.  
 
     -  EINTR   
 -  Функция fclose() прервана сигналом.    
 -  EIO   
 -  Одна из следующих причин:  
  -  Процесс, являющийся членом группы фоновых процессов, пытается писать в управляющий терминал, 
TOSTOP установлен, процесс ни игнорирует, ни блокирует SIGTTOU, группа процеса является осиротевшей.   -  (расширение ЗОСРВ «Нейтрино») Ошибка ввода/вывода во время записи кэшированных данных на носитель.  
 -  (расширение ЗОСРВ «Нейтрино») Ошибка ввода/вывода во время обновления метаданных на носителе.  
 -  (расширение ЗОСРВ «Нейтрино») Файловая система находится на съемном носителе, и этот носитель был принудительно удален.  
 
     -  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 системной библиотеки