[PATCH] Never cache offset when the stream handle is not active (BZ #16680)

Siddhesh Poyarekar siddhesh@redhat.com
Tue Mar 11 00:39:00 GMT 2014


On Mon, Mar 10, 2014 at 02:34:59PM -0400, Rich Felker wrote:
> Caching the offset is valid when writing in append mode. The one case
> that's special for append mode is that, even once the handle is
> active, you can't save the resulting offset at the time of seek/rewind
> and use it for ftell during subsequent writing. This is because the
> (first) write after seeking could change the current offset. One easy
> way to deal with this is to treat seek/rewind as deactivating the
> handle when the stream is in append mode, but more fine-grained
> solutions are possible too.

Treating seek/rewind as deactivating the handle won't help for append
mode because we want to simulate the file position as being the end of
file regardless of the file position when the handle is inactive, but
after a seek, the stream is assumed to be in read mode until the next
write and in such a case, we want to know the actual position of the
file and not the simulated end-of-file.  That is why I use writing in
append mode as a coarse-grained indicator that the file offset is the
end of file.  Isn't it similar to what you do in musl?

Siddhesh
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 473 bytes
Desc: not available
URL: <http://sourceware.org/pipermail/libc-alpha/attachments/20140311/6d8b8749/attachment.sig>


More information about the Libc-alpha mailing list