msvcrt: fread: fill buffer on small reads

Markus Amsler markus.amsler at oribi.org
Wed Oct 11 04:55:59 CDT 2006


Duane Clark wrote:
> 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.

I'm also not sure which read you mean. But i assumed some sort of 
stripped down inline MSVCRT__filbuf with read_i.

Markus



More information about the wine-devel mailing list