lseek(2) lseek(2)
NAME [Toc] [Back]
lseek - move read/write file pointer; seek
SYNOPSIS [Toc] [Back]
#include <unistd.h>
off_t lseek(int fildes, off_t offset, int whence);
DESCRIPTION [Toc] [Back]
lseek() sets the file pointer associated with the file descriptor as
follows:
+ If whence is SEEK_SET, the pointer is set to offset bytes.
+ If whence is SEEK_CUR, the pointer is set to its current
location plus offset.
+ If whence is SEEK_END, the pointer is set to the size of the
file plus offset.
These symbolic constants are defined in <unistd.h>.
RETURN VALUE [Toc] [Back]
When lseek() completes successfully, it returns an integer, which is
the resulting file offset as measured in bytes from the beginning of
the file. Otherwise, a value of -1 is returned and errno is set to
indicate the error.
For all files that are not character or block special files, the
integer returned on successful completion is non-negative. For
character or block special files that correspond to disk sections
larger than 2 gigabytes, a non-negative integer is returned for
successful seeks beyond 2 gigabytes. This value is the resulting file
offset as measured in bytes from the beginning of the file, when taken
as an unsigned value. -1 always indicates an error return, even when
encountered on greater than 2 gigabyte disk sections. The lseek()
call succeeds for NFS directories even if the resulting file offset
becomes negative.
ERRORS [Toc] [Back]
lseek() fails and the file offset remains unchanged if one or more of
the following is true:
[EBADF] fildes is not an open file descriptor.
[ESPIPE] fildes is associated with a pipe, socket, or FIFO.
[EINVAL] whence is not one of the supported values.
[EINVAL] The resulting file offset would be negative.
Hewlett-Packard Company - 1 - HP-UX 11i Version 2: August 2003
lseek(2) lseek(2)
[EINVAL] The resulting file offset would be a value which cannot
be represented correctly in an object of type off_t.
WARNINGS [Toc] [Back]
Some devices are incapable of seeking. The value of the file offset
associated with such a device is undefined.
Using lseek() with a whence of SEEK_END on device special files is not
supported and the results are not defined.
SEE ALSO [Toc] [Back]
creat(2), dup(2), fcntl(2), lseek64(2), open(2), unistd(5).
STANDARDS CONFORMANCE [Toc] [Back]
lseek(): AES, SVID2, SVID3, XPG2, XPG3, XPG4, FIPS 151-2, POSIX.1
Hewlett-Packard Company - 2 - HP-UX 11i Version 2: August 2003 [ Back ] |