MAN sezione 2 - Torna all'indice
MAN PAGE: TRUNCATE(2)Contents
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);
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. If the file previously was shorter, it is
unspecified whether the file is left unchanged or is
extended. In the latter case the extended part reads as
zero bytes. With ftruncate, the file must be open for
writing.
On success, zero is returned. On error, -1 is returned,
and errno is set appropriately.
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.
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.
These calls should be generalized to allow ranges of bytes
in a file to be discarded.
open(2)
21 December 1998 2 |