llseek - move extended read/write file pointer


     #include <sys/types.h>
     #include <unistd.h>

     offset_t llseek(int fildes, offset_t offset, int whence);


     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

        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

     Some devices are incapable of seeking. The value of the file
     pointer associated with such a device is undefined.


     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.


     The llseek() function will fail if:

     EBADF The fildes argument is not an open file descriptor.

           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.

           The fildes argument is associated with a pipe or FIFO.


     creat(2), dup(2), fcntl(2), lseek(2), open(2)

Man(1) output converted with man2html