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