It is way to expensive to write the whole file. That's why I proposed
to only write the last byte. This will force the OS to really map the
file on the systems less POSIX compliant.
On Mar 28, 2009, at 13:50 , Jeff Squyres wrote:
> How about just write()ing a bunch of 0's instead of using ftruncate?
> On Mar 27, 2009, at 11:09 PM, Eugene Loh wrote:
>> Paul H. Hargrove wrote:
>> > Quoting from a different manpage for ftruncate:
>> > [T]he POSIX standard allows two behaviours for ftruncate
>> > when length exceeds the file length [...]: either
>> returning an
>> > error, or
>> > extending the file.
>> > So, if that is to be trusted, it is not legal by POSIX to
>> > not extend the file.
>> On a Solaris system, the ftruncate man page says:
>> truncate, ftruncate - set a file to a specified length
>> The truncate() function causes the regular file named by
>> path to have a size equal to length bytes.
>> If the file previously was larger than length, the extra
>> data is discarded. If the file was previously shorter than
>> length, its size is increased, and the extended area appears
>> as if it were zero-filled.
>> So, the sense is not of "truncating" (shortening) per se, but of
>> a new length, whether that length is longer or shorter.
>> I guess we could try to track down the ftruncate behavior on the
>> in question, but (IMHO) this doesn't feel like the correct
>> devel mailing list
> Jeff Squyres
> Cisco Systems
> devel mailing list