| TRUNCATE(2) | System Calls Manual | TRUNCATE(2) |
truncate,
ftruncate — truncate 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);
truncate()
causes the file named by path or referenced by
fd to have a size of length
bytes. If the file previously was larger than this size, the extra data is
discarded. If it was previously shorter than length,
its size is increased to the specified value and the extended area appears
as if it were zero-filled.
With
ftruncate(),
the file must be open for writing; for truncate(),
the process must have write permissions for the file.
A value of 0 is returned if the call succeeds. If the call fails a -1 is returned, and the global variable errno specifies the error.
Error return codes common to truncate()
and ftruncate() are:
EINVAL]EIO]EISDIR]ENOSPC]EROFS]ETXTBSY]Error codes specific to truncate()
are:
EACCES]EFAULT]ELOOP]ENAMETOOLONG]NAME_MAX}
characters, or an entire path name exceeded
{PATH_MAX} characters.ENOENT]ENOTDIR]Error codes specific to ftruncate()
are:
Use of truncate() to extend a file is an
IEEE Std 1003.1-2004 (“POSIX.1”)
extension, and is thus not portable. Files can be extended in a portable way
seeking (using lseek(2)) to the
required size and writing a single character with
write(2).
The truncate() and
ftruncate() function calls appeared in
4.2BSD.
| July 23, 2014 | NetBSD 11.0 |