the port's input buffers if available, instead from the underlying file descriptor. * return `#f' if end-of-file is encountered before reading any characters, otherwise return the number of characters read. * return 0 if the port is in non-blocking mode and no characters are immediately available. * return 0 if the request is for 0 bytes, with no end-of-file check.