Jump to content United States-English
HP.com Home Products and Services Support and Drivers Solutions How to Buy
» Contact HP
More options
HP.com home
HP-UX Reference > T

truncate(2)

HP-UX 11i Version 3: February 2007
» 

Technical documentation

» Feedback
Content starts here

 » Table of Contents

 » Index

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 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

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 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.

AUTHOR

truncate() was developed by the University of California, Berkeley.

SEE ALSO

chmod(2), fcntl(2), flock(2), ftruncate64(2), lockf(2), open(2), truncate64(2), privileges(5), <unistd.h>.

CHANGE HISTORY

First released in Issue 4, Version 2.

STANDARDS CONFORMANCE

truncate(): AES ftruncate(): AES, SVID3

Printable version
Privacy statement Using this site means you accept its terms Feedback to webmaster
© 1983-2007 Hewlett-Packard Development Company, L.P.