Il 28/01/2013 08:53, Markus Armbruster ha scritto: > Andreas Färber <andreas.faer...@web.de> writes: > >> Hello Markus, >> >> On OpenIndiana 151a7 I am seeing assertion failures for ret == 0 in >> hd-geo-test.c:35:create_test_img(). It seems it is refusing to blow up >> the temporary file. Any suggestion what to do about that? > > Fine print on ftruncate(): > > If fildes refers to a regular file, the ftruncate() function shall > cause the size of the file to be truncated to length. If the size > of the file previously exceeded length, the extra data shall no > longer be available to reads on the file. If the file previously > was smaller than this size, ftruncate() shall either increase the > size of the file or fail. XSI-conformant systems shall increase the > size of the file. If the file size is increased, the extended area > shall appear as if it were zero-filled. The value of the seek > pointer shall not be modified by a call to ftruncate(). > > Looks like OpenIndiana got stuck in the 20th century. > > If you care for such losing systems, you need create_test_img to fall > back or switch wholesale to a less elegant way to create the image.
Traditionally you used a 1-byte write to create a sparse file, preceeded by an lseek to offset SIZE-1. Paolo