Open System Services System Calls Reference Manual (G06.28+, H06.05+)

ftruncate(2) OSS System Calls Reference Manual
NAME
ftruncate - Changes le length
LIBRARY
G-series native OSS processes: system library
H-series OSS processes: implicit libraries
SYNOPSIS
#include <sys/types.h>
int ftruncate(
int ledes,
off_t length);
PARAMETERS
filedes Species the descriptor of a le that must be open for writing.
length Species the new length of the le in bytes.
DESCRIPTION
The ftruncate() function changes the length of a le to the size, in bytes, specied by the length
parameter.
If the new length is less than the previous length, the ftruncate() function removes all data
beyond length bytes from the specied le. All le data between the new EOF and the previous
EOF is discarded.
If the new length is greater than the previous length, zeros are added between the previous EOF
and the new EOF.
Full blocks are returned to the leset so that they can be used again, and the le size is changed
to the value of the length parameter.
The ftruncate() function has no effect on First-in, First-out (FIFO) special les. This function
does not modify the seek pointer of the le. If ftruncate() is called for a FIFO le, the call fails,
and errno is set to [EINVAL].
Upon successful completion, the ftruncate() function marks the st_ctime and st_mtime elds of
the le for update. If the le is a regular le, the ftruncate() function clears the S_ISUID and
S_ISGID attributes of the le.
RETURN VALUES
Upon successful completion, the value 0 (zero) is returned. Otherwise, the value -1 is returned
and errno is set to indicate the error.
ERRORS
If any of these conditions occurs, the ftruncate( ) function sets errno to the corresponding value:
[EBADF] The ledes parameter does not specify a valid le descriptor open for writing.
[EFBIG] The length parameter is greater than the minimum of 2 gigabytes minus 1 byte |
and the maximum le size established during le open.
[EINTR] The function was interrupted by a signal before any data arrived.
[EINVAL] One of these conditions occurred:
The le pointed to by the ledes parameter is not a regular le.
The value specied for the length parameter was less than 0 (zero).
358 Hewlett-Packard Company 527186-007