TRUNCATE(2) | System Calls Manual | TRUNCATE(2) |
truncate
,
ftruncate
— truncate or
extend a file to a specified length
Standard C Library (libc, -lc)
#include
<unistd.h>
int
truncate
(const
char *path, off_t
length);
int
ftruncate
(int
fd, off_t
length);
The
truncate
()
system call causes the file named by path or
referenced by fd to be truncated or extended to
length bytes in size. If the file was larger than this
size, the extra data is lost. If the file was smaller than this size, it
will be extended as if by writing bytes with the value zero.
The
ftruncate
()
system call causes the file or shared memory object backing the file
descriptor fd to be truncated or extended to
length bytes in size. The file descriptor must be a
valid file descriptor open for writing. The file position pointer associated
with the file descriptor fd will not be modified.
Upon successful completion, the value 0 is returned;
otherwise the value -1 is returned and the global variable
errno is set to indicate the error. If the file to be
modified is not a directory or a regular file, the
truncate
() call has no effect and returns the value
0.
The truncate
() system call succeeds
unless:
ENOTDIR
]ENAMETOOLONG
]ENOENT
]EACCES
]EACCES
]ELOOP
]EPERM
]EISDIR
]EROFS
]ETXTBSY
]EFBIG
]EINVAL
]EIO
]EFAULT
]The ftruncate
() system call succeeds
unless:
The truncate
() and
ftruncate
() system calls appeared in
4.2BSD.
These calls should be generalized to allow ranges of bytes in a file to be discarded.
Use of truncate
() to extend a file is not
portable.
May 4, 2015 | Debian |