Read a byte from s. Fills the input buffer if buffering is
enabled and the buffer is empty. Updates the stream position information
if enabled (SIO_RECORDPOS). Returns -1 on end of file or
error. Use Sferror()
or Sfeof() to
distinguish end of file from an error. This is a C macro.