msvcrt: fread: fill buffer on small reads

Duane Clark dclark at akamail.com
Tue Oct 10 19:07:02 CDT 2006


Alexandre Julliard wrote:
> Markus Amsler <markus.amsler at 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.






More information about the wine-devel mailing list