ferror returns non-zero when error has occured reading or writing the named stream, otherwise zero. Unless cleared by clearerr, the error indication lasts until the stream is closed.
clearerr resets the error indication on the named stream. fileno returns the integer file descriptor (type FD) associated with the stream, see open(2P). feof, ferror, and fileno are implemented as macros; they cannot be re-declared.