respect error code from ftruncate(), mentioned by Peter Sylvester

This commit is contained in:
Daniel Stenberg 2009-08-03 09:06:35 +00:00
parent 781b82baf5
commit 9d03dd7fb8
1 changed files with 8 additions and 1 deletions

View File

@ -4991,7 +4991,14 @@ operate(struct Configurable *config, int argc, argv_item_t argv[])
fflush(outs.stream);
/* truncate file at the position where we started appending */
#ifdef HAVE_FTRUNCATE
ftruncate( fileno(outs.stream), outs.init);
if(ftruncate( fileno(outs.stream), outs.init)) {
/* when truncate fails, we can't just append as then we'll
create something strange, bail out */
if(!config->mute)
fprintf(config->errors,
"failed to truncate, exiting\n");
break;
}
/* now seek to the end of the file, the position where we
just truncated the file in a large file-safe way */
fseek(outs.stream, 0, SEEK_END);