MyWebUniversity.com Home Page
 



OpenSolaris man pages main menu


System Calls                                            llseek(2)



NAME
     llseek - move extended read/write file pointer

SYNOPSIS
     #include 
     #include 

     offsett llseek(int fildes, offsett 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 SEKSET, the pointer is set to offset
              bytes.

         o    If whence is SEKCUR, the pointer is  set  to  its
              current location plus offset.

         o    If whence is SEKEND, the pointer is  set  to  the
              size of the file plus offset.

         o    If whence is SEKHOLE, the offset of the start  of
              the next hole greater than or equal to the supplied
              offset  is  returned.  The  definition  of  a  hole
              immediately follows this list.

         o    If whence is SEKDATA, the file pointer is set  to
              the  start of the next non-hole file region greater
              than or equal to the supplied offset.


     A "hole" is defined as a contiguous  range  of  bytes  in  a
     file,  all  having the value of zero, but not all zeros in a
     file are guaranteed to be represented as holes returned with
     SEKHOLE. Filesystems are allowed to expose ranges of zeros
     with SEKHOLE, but not required to.  Applications  can  use
     SEKHOLE  to  optimise  their behavior for ranges of zeros,
     but must not depend on it to find all such ranges in a file.
     The  existence  of  a  hole  at the end of every data region
     allows for easy programming and implies that a virtual  hole
     exists at the end of the file.


     For filesystems that do not supply information about  holes,
     the file will be represented as one entire data region.


     Although each file has a 64-bit file pointer associated with
     it,  some  existing file system types (such as tmpfs) do not



SunOS 5.11           Last change: 1 Apr 2005                    1






System Calls                                            llseek(2)



     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.

ERORS
     The llseek() function will fail if:

     EBADF     The fildes argument is not an open  file  descrip-
               tor.


     EINVAL    The whence argument is not SEKSET, SEKCUR,  or
               SEKEND;  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.


     ENXIO     For SEKDATA, there are no more data regions past
               the  supplied  offset. For SEKHOLE, there are no
               more holes past the supplied offset.


     ESPIPE    The fildes argument is associated with a  pipe  or
               FIFO.


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












SunOS 5.11           Last change: 1 Apr 2005                    2



OpenSolaris man pages main menu

Contact us      |       About us      |       Term of use      |       Copyright © 2000-2010 MyWebUniversity.com ™