[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

portability of rewind

From: Eric Blake
Subject: portability of rewind
Date: Mon, 28 May 2007 13:59:05 -0600
User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv: Gecko/20070221 Thunderbird/ Mnenhy/

Hash: SHA1

Should we update stdio_.h to give a link warning that recommends avoiding
all use of rewind?  m4 had been using rewind to swap from appending to a
temporary file representing a large diversion, to reading from offset 0 to
copy that diversion to a different location.  But if the implicit fflush
performed by the rewind fails, there is no way for the application to know
about it, since rewind must also clear the error bit on the stream.  Which
means that rewind can cause undetected data loss.  And which is why I'm
checking in a patch to m4 today to avoid all use of rewind.

In the meantime, I discovered that cygwin 1.5.24 has a bug where rewind
fails to clear the stream error bit (fixed in CVS for the upcoming cygwin
1.7.0).  But I don't see the utility in making a gnulib rewind module to
work around this bug, since rewind is inherently unsafe to begin with.

- --
Don't work too hard, make some time for fun as well!

Eric Blake             address@hidden
Version: GnuPG v1.4.5 (Cygwin)
Comment: Public key at home.comcast.net/~ericblake/eblake.gpg
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org


reply via email to

[Prev in Thread] Current Thread [Next in Thread]