llseek(2)
NAME
llseek - move extended read/write file pointer
SYNOPSIS
#include <sys/types.h>
#include <unistd.h>
offset_t llseek(int fildes, offset_t offset, int whence);
DESCRIPTION
The llseek() function sets the 64-bit extended file pointer
associated with the open file descriptor specified by fildes
as follows:
o If whence is SEEK_SET, the pointer is set to offset
bytes.
o If whence is SEEK_CUR, the pointer is set to its
current location plus offset.
o If whence is SEEK_END, the pointer is set to the size
of the file plus offset.
Although each file has a 64-bit file pointer associated with
it, some existing file system types (such as tmpfs) do not
support the full range of 64-bit offsets. In particular, on
such file systems, non-device files remain limited to
offsets of less than two gigabytes. Device drivers may sup-
port offsets of up to 1024 gigabytes for device special
files.
Some devices are incapable of seeking. The value of the file
pointer associated with such a device is undefined.
RETURN VALUES
Upon successful completion, llseek() returns the resulting
pointer location as measured in bytes from the beginning of
the file. Remote file descriptors are the only ones that
allow negative file pointers. Otherwise, -1 is returned, the
file pointer remains unchanged, and errno is set to indicate
the error.
ERRORS
The llseek() function will fail if:
EBADF The fildes argument is not an open file descriptor.
EINVAL
The whence argument is not SEEK_SET, SEEK_CUR, or
SEEK_END; the offset argument is not a valid offset
for this file system type; or the fildes argument is
not a remote file descriptor and the resulting file
pointer would be negative.
ESPIPE
The fildes argument is associated with a pipe or FIFO.
SEE ALSO
creat(2), dup(2), fcntl(2), lseek(2), open(2)
Man(1) output converted with
man2html