Функция fclose() закрывает файл, связанный с потоком stream, и дозаписывает его буфер. После обращения к функции fclose() элемент stream больше не связан с файлом, и все автоматически выделенные буфера освобождаются.
Функция clearerr() сбрасывает (т.е. устанавливает равным нулю) признак ошибки, связанный с потоком, на который указывает элемент stream. При этом также сбрасывается признак конца файла.