Alexandre Julliard wrote:
Markus Amsler markus.amsler@oribi.org writes:
- /* fill empty buffer on small reads */
- if(!file->_cnt && rcnt <= MSVCRT_BUFSIZ) {
- MSVCRT__filbuf(file);
- /* reset internal buffer */
- file->_cnt++;
- file->_ptr = file->_base;
- }
You need to handle errors properly, and MSVCRT__filbuf is probably not the most appropriate thing to use here, a simple read would be better.
Are you referring to _read() or read_i()? Those don't have an associated internal file buffer/cache (I guess because they don't have an associated file->_cnt and _ptr). Or were you referring to some other read call?
fread already does a _read() once it determines the current buffer is empty.