Свакој отвореној датотеци су придружена два логичка индикатора: индикатор краја датотеке и индикатор грешке. Већина функције из заглавља <stdio.h>, као и бочни ефекат, подешавају и та два индикатора.
void clearerr (FILE *dat);
Ова функција брише индикатор грешке и индикатор краја датотеке за датотеку dat. Функција не враћа никакву вредност.
inf feof(FILE *dat);
Ова функција исписује индикатор краја датотеке за датотеку dat. Вредност функције је различита од 0 ако је индикатор краја датотеке укључен. Индикатор краја датотеке укључује се тек после позива функције fread, при којој није било довољно података за читање.
int ferror (FILE *dat);
Ова функција испитује индикатор грешке за датотеку dat. Вредност функције је различита од 0 ако је индикатор грешке укључен.
Поред наведених функција, целобројна глобална променљива errno, која је декларисана у заглављу <errno.h>, садржи шифру грешке која може да пружи додатне информације о последњој откривеној грешци. Стандард не прецизира тумачење кодова грешака.