2004-08-28 Pierre Humblet <pierre.humblet@ieee.org>
* syscalls.cc (ftruncate64): On 9x, call write with a zero length to zero fill when the file is extended.
This commit is contained in:
parent
5796021e86
commit
2e41976b56
@ -1,3 +1,8 @@
|
|||||||
|
2004-08-28 Pierre Humblet <pierre.humblet@ieee.org>
|
||||||
|
|
||||||
|
* syscalls.cc (ftruncate64): On 9x, call write with a zero length
|
||||||
|
to zero fill when the file is extended.
|
||||||
|
|
||||||
2004-08-24 Corinna Vinschen <corinna@vinschen.de>
|
2004-08-24 Corinna Vinschen <corinna@vinschen.de>
|
||||||
|
|
||||||
* syscalls.cc (link): Avoid compiler warning.
|
* syscalls.cc (link): Avoid compiler warning.
|
||||||
|
@ -1676,7 +1676,7 @@ setmode (int fd, int mode)
|
|||||||
extern "C" int
|
extern "C" int
|
||||||
ftruncate64 (int fd, _off64_t length)
|
ftruncate64 (int fd, _off64_t length)
|
||||||
{
|
{
|
||||||
int res = -1;
|
int res = -1, res_bug = 0;
|
||||||
|
|
||||||
if (length < 0)
|
if (length < 0)
|
||||||
set_errno (EINVAL);
|
set_errno (EINVAL);
|
||||||
@ -1693,10 +1693,13 @@ ftruncate64 (int fd, _off64_t length)
|
|||||||
_off64_t prev_loc = cfd->lseek (0, SEEK_CUR);
|
_off64_t prev_loc = cfd->lseek (0, SEEK_CUR);
|
||||||
|
|
||||||
cfd->lseek (length, SEEK_SET);
|
cfd->lseek (length, SEEK_SET);
|
||||||
|
/* Fill the space with 0, if needed */
|
||||||
|
if (wincap.has_lseek_bug ())
|
||||||
|
res_bug = cfd->write (&res, 0);
|
||||||
if (!SetEndOfFile (h))
|
if (!SetEndOfFile (h))
|
||||||
__seterrno ();
|
__seterrno ();
|
||||||
else
|
else
|
||||||
res = 0;
|
res = res_bug;
|
||||||
|
|
||||||
/* restore original file pointer location */
|
/* restore original file pointer location */
|
||||||
cfd->lseek (prev_loc, SEEK_SET);
|
cfd->lseek (prev_loc, SEEK_SET);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user