Open System Services System Calls Reference Manual (G06.25+, H06.03+)

System Functions (k - m) lseek(2)
NAME
lseek - Sets le offset for read or write operation
LIBRARY
G-series native OSS processes: system library
H-series OSS processes: implicit libraries
SYNOPSIS
#include <sys/types.h> /* optional except for POSIX.1 */
#include <unistd.h>
off_t lseek(
int filedes,
off_t offset,
int whence);
PARAMETERS
filedes Species an open le descriptor obtained from a successful call to the accept(),
creat(), dup( ), dup2( ), fcntl( ), open(), pipe( ), socket(),orsocketpair() func-
tion.
offset Species a value, in bytes, that is used with the whence parameter to set the le
pointer. A negative value causes seeking in the reverse direction.
whence Species how to interpret the offset parameter in setting the le pointer associ-
ated with the filedes parameter. Values for the whence parameter are:
SEEK_CUR Sets the le pointer to its current location plus the value of the
offset parameter.
SEEK_END Sets the le pointer to the size of the le plus the value of the
offset parameter.
SEEK_SET Sets the le pointer to the value of the offset parameter.
DESCRIPTION
The lseek() function sets the le offset for the open le specied by the filedes parameter. The
whence parameter determines how the offset is to be interpreted.
The lseek() function allows the le offset to be set beyond the end of existing data in the le. If
data is later written at this point, subsequent reading of data in the gap returns bytes with the
value 0 (zero) until data is actually written into the gap.
The lseek() function does not, by itself, extend the size of the le.
RETURN VALUES
Upon successful completion, the resulting pointer location, measured in bytes from the beginning
of the le, is returned. For FIFOs, pipes, and character special les, 0 (zero) is returned. For char-
acter special les, errno is not set.
If the lseek() function fails, the le offset remains unchanged, a value of -1 cast to the type off_t
is returned, and errno is set to indicate the error.
ERRORS
If any of these conditions occurs, the le offset remains unchanged, and the lseek() function sets
errno to the corresponding value:
[EBADF] The filedes parameter is not an open le descriptor.
527186-003 Hewlett-Packard Company 411