Computer Science
TRUNCATE(2) Linux Programmer's Manual TRUNCATE(2)
NAME
truncate, ftruncate - truncate a file to a specified
length
SYNOPSIS
#include <unistd.h>
int truncate(const char *path, off_t length);
int ftruncate(int fd, off_t length);
DESCRIPTION
Truncate causes the file named by path or referenced by fd
to be truncated to at most length bytes in size. If the
file previously was larger than this size, the extra data
is lost. With ftruncate, the file must be open for writ-
ing.
RETURN VALUE
On success, zero is returned. On error, -1 is returned,
and errno is set appropriately.
ERRORS
For truncate:
ENOTDIR A component of the path prefix is not a directory.
EINVAL The pathname contains a character with the high-
order bit set.
ENAMETOOLONG
A component of a pathname exceeded 255 characters,
or an entire path name exceeded 1023 characters.
ENOENT The named file does not exist.
EACCES Search permission is denied for a component of the
path prefix.
EACCES The named file is not writable by the user.
ELOOP Too many symbolic links were encountered in trans-
lating the pathname.
EISDIR The named file is 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.
EIO An I/O error occurred updating the inode.
EFAULT Path points outside the process's allocated
address space.
For ftruncate:
EBADF The fd is not a valid descriptor.
EINVAL The fd references a socket, not a file.
EINVAL The fd is not open for writing.
CONFORMING TO
4.4BSD, SVr4 (these function calls first appeared in BSD
4.2). SVr4 documents additional truncate error conditions
EINTR, EMFILE, EMULTIHP, ENAMETOOLONG, ENFILE, ENOLINK,
ENOTDIR. SVr4 documents for ftruncate additional EAGAIN
and EINTR error conditions. POSIX has ftruncate but not
truncate.
BUGS
These calls should be generalized to allow ranges of bytes
in a file to be discarded.
SEE ALSO
open(2)
21 December 1998 1
Back to the index