[Python-Dev] Why do we flush before truncating? (original) (raw)
Neil Schemenauer nas-python at python.ca
Sat Sep 6 12:23:40 EDT 2003
- Previous message: [Python-Dev] Why do we flush before truncating?
- Next message: [Python-Dev] Why do we flush before truncating?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Sat, Sep 06, 2003 at 01:11:14PM -0400, Tim Peters wrote:
I don't understand why we're flushing the file. ftruncate() isn't a standard C function, so the standard sheds no light on why we might be doing that.
The fflush call as been there forever. The truncate method was added in 2.36 by Guido. I think the code was actually from Jim Roskind:
http://groups.google.com/groups?selm=199412070213.SAA06932%40infoseek.com
He says:
Note that since the underlying ftruncate operates on a file descriptor (believe it or not), it was necessary to fflush() the stream before performing the truncate. I thought about doing a seek() as well, but could not find compelling reason to move the stream pointer.
That still gives me no clue as to why the fflush() was deemed necessary. I found this posting:
http://groups.google.com/groups?hl=en&lr=&ie=UTF-8&oe=UTF-8&selm=35E0DB62.1BDD2D30%40taraz.kz&rnum=1
but, AFACK, the reason the program is not working the way the poster expects is the missing fflush() call before the lseek() call (not the fflush() before the ftruncate()).
Neil
- Previous message: [Python-Dev] Why do we flush before truncating?
- Next message: [Python-Dev] Why do we flush before truncating?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]