Sun Microsystems, Inc.
spacerspacer
spacer   www.sun.com docs.sun.com | | |  
spacer
black dot
   
A   B   C   D   E   F   G   H   I   J   K   L   M   N   O   P   Q   R   S   T   U   V   W   X   Y   Z
    
 
Standard C Library Functionstruncate(3C)


NAME

 truncate, ftruncate - set a file to a specified length

SYNOPSIS

 
#include <unistd.h>
int truncate(const char *path, off_t length);
 int ftruncate(int fildes, off_t length);

DESCRIPTION

 

The truncate() function causes the regular file named by path to have a size of length bytes.

The ftruncate() function causes the regular file referenced by fildes 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 VALUES

 

Upon successful completion, ftruncate() and truncate() return 0. Otherwise, -1 is returned and errno is set to indicate the error.

ERRORS

 

The ftruncate() and truncate() functions will fail if:

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.

The truncate() function will fail if:

EACCES
A component of the path prefix denies search permission, or write permission is denied on the file.
EFAULT
The path argument points outside the process' allocated address space.
EINVAL
The path argument is not an ordinary file.
EISDIR
The named file is a directory.
ELOOP
Too many symbolic links were encountered in resolving path.
EMFILE
The maximum number of file descriptors available to the process has been reached.
ENAMETOOLONG
The length of the specified pathname 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.
ENFILE
Additional space could not be allocated for the system file table.
ENOTDIR
A component of the path prefix of path is not a directory.
ENOLINK
The path argument points to a remote machine and the link to that machine is no longer active.
EROFS
The named file resides on a read-only file system.

The ftruncate() function will fail if:

EAGAIN
The file exists, mandatory file/record locking is set, and there are outstanding record locks on the file (see chmod(2)).
EBADF or EINVAL
The fildes argument is not a file descriptor open for writing.
EFBIG
The file is a regular file and length is greater than the offset maximum established in the open file description associated with fildes.
EINVAL
The fildes argument references a file that was opened without write permission.
EINVAL
The fildes argument does not correspond to an ordinary file.
ENOLINK
The fildes argument points to a remote machine and the link to that machine is no longer active.

The truncate() function may fail if:

ENAMETOOLONG
Pathname resolution of a symbolic link produced an intermediate result whose

USAGE

 

The truncate() and ftruncate() functions have transitional interfaces for 64-bit file offsets. See lf64(5).

ATTRIBUTES

 

See attributes(5) for descriptions of the following attributes:

ATTRIBUTE TYPEATTRIBUTE VALUE
MT-LevelMT-Safe

SEE ALSO

 

chmod(2), fcntl(2), open(2), attributes(5), lf64(5)


SunOS 5.9Go To TopLast Changed 28 Jan 1998

 
      
      
Copyright 2002 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms.