truncate(2) truncate(2)
NAME [Toc] [Back]
ftruncate, truncate - truncate a file to a specified length
SYNOPSIS [Toc] [Back]
#include <unistd.h>
int ftruncate(int fildes, off_t length);
int truncate(const char *path, off_t length);
DESCRIPTION [Toc] [Back]
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 truncate(), 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 successful 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 [Toc] [Back]
Upon successful completion, ftruncate()and truncate() returns 0.
Otherwise a -1 is returned, and errno is set to indicate the error.
ERRORS [Toc] [Back]
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.
Hewlett-Packard Company - 1 - HP-UX 11i Version 2: August 2003
truncate(2) truncate(2)
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
permission.
If truncate() fails, errno is set to one of the following values:
[EACCES] A component of the path prefix denies
search permission, or write permission
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.
[ENOENT] A component of path does not name an
existing file or path is an empty
string.
[ENOTDIR] A component of the path prefix of path
is not a directory.
[EROFS] The named file resides on a read-only
file system.
[ETXTBSY] The file is a pure procedure (shared
text) file that is being executed.
Hewlett-Packard Company - 2 - HP-UX 11i Version 2: August 2003
truncate(2) truncate(2)
AUTHOR [Toc] [Back]
truncate() was developed by the University of California, Berkeley.
SEE ALSO [Toc] [Back]
ftruncate64(2), open(2), truncate64(2), <unistd.h>.
CHANGE HISTORY [Toc] [Back]
First released in Issue 4, Version 2.
STANDARDS CONFORMANCE [Toc] [Back]
truncate(): AES ftruncate(): AES, SVID3
Hewlett-Packard Company - 3 - HP-UX 11i Version 2: August 2003 [ Back ] |