truncate.2 (2010 09)
t
truncate(2) truncate(2)
NAME
ftruncate, truncate - truncate a file to a specified length
SYNOPSIS
#include <unistd.h>
int ftruncate(int fildes, off_t length);
int truncate(const char *path, off_t length);
DESCRIPTION
The ftruncate() function causes the regular file referenced by fildes to have a size of length bytes.
The
truncate() function causes the regular file named by path to have a size of length bytes.
The effect of
ftruncate() and truncate()
on other types of files is unspecified. If the file previously
was larger than length, the extra data is lost. If it was previously shorter than length , bytes between the
old and new lengths are read as zeroes. With
ftruncate(), the file must be open for writing; for trun-
cate(), the process must have write permission for the file.
If the request would cause the file size to exceed the soft file size limit for the process, the request will fail
and the implementation will generate the
SIGXFSZ signal for the process.
These functions do not modify the file offset for any open file descriptions associated with the file. On suc-
cessful completion, if the file size is changed, these functions will mark for update the st_ctime and
st_mtime fields of the file, and if the file is a regular file, the
S_ISUID and S_ISGID bits of the file mode
may be cleared.
RETURN VALUE
Upon successful completion,
ftruncate()and truncate() returns 0. Otherwise a −1 is returned,
and errno is set to indicate the error.
ERRORS
If
ftruncate() or truncate() fails, errno is set to one of the following values:
[EINTR] A signal was caught during execution.
[EINVAL] The length argument was less than 0.
[EFBIG] or [EINVAL] The length argument was greater than the maximum file size.
[EIO] An I/O error occurred while reading from or writing to a file system.
[EAGAIN] Enforcement mode file/record locking is set (see chmod(2)), and there are
outstanding record locks on the file with the
lockf(), flock(),or
fcntl() system calls.
If
ftruncate() fails, errno is set to one of the following values:
[EBADF] or [EINVAL] The fildes argument is not a file descriptor open for writing.
[EDQUOT] The user’s disk quota block limit has been reached for this file system.
[EINVAL] The fildes argument references a file that was opened without write per-
mission.
If
truncate() fails, errno is set to one of the following values:
[EACCES] A component of the path prefix denies search permission, or write permis-
sion is denied on the file.
[EDQUOT] The user’s disk quota block limit has been reached for this file system.
[EFAULT] path points outside the process’s allocated address space. The reliable
detection of this error is implementation dependent.
[EISDIR] The named file is a directory.
[ELOOP] Too many symbolic links were encountered in resolving path .
[ENAMETOOLONG] Pathname resolution produced an intermediate result whose length
exceeds
PATH_MAX bytes, or the length of a component of the pathname
exceeds NAME_MAX bytes.
HP-UX 11i Version 3: September 2010 − 1 − Hewlett-Packard Company 1