truncate, ftruncate - truncate a file to a specified length
#include <unistd.h>
int truncate(const char *path, off_t length);
int ftruncate(int fd, off_t length);
Feature Test Macro Requirements for glibc (see feature_test_macros(7)):
The truncate() and ftruncate()
functions cause the regular file named by path
or referenced by
fd
to be truncated to a size of precisely length
bytes.
If the file previously was larger than this size, the extra data is lost. If the file previously was shorter, it is extended, and the extended part reads as null bytes ('\0').
The file offset is not changed.
If the size changed, then the st_ctime and st_mtime fields (respectively, time of last status change and time of last modification; see inode(7)) for the file are updated, and the set-user-ID and set-group-ID mode bits may be cleared.
With ftruncate(), the file must be open for writing; with truncate(), the file must be writable.
On success, zero is returned. On error, -1 is returned, and
errno
is set to indicate the error.
truncate(1), open(2), stat(2), path_resolution(7)