Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (SunOS-4.1.3)
Apropos / Subsearch:
optional field

LSEEK(2V)                                                            LSEEK(2V)

       lseek, tell - move read/write pointer

       #include <&lt;sys/types.h>&gt;
       #include <&lt;unistd.h>&gt;

       off_t lseek(fd, offset, whence)
       int fd;
       off_t offset;
       int whence;

       long tell(fd)
       int fd;

       lseek()  sets  the seek pointer associated with the open file or device
       referred to by the descriptor fd according to the  value  supplied  for
       whence.   whence  must  be  one  of  the following constants defined in


       If whence is SEEK_SET, the seek pointer is set  to  offset  bytes.   If
       whence  is  SEEK_CUR,  the  seek pointer is set to its current location
       plus offset.  If whence is SEEK_END, the seek pointer  is  set  to  the
       size of the file plus offset.

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

       The  obsolete  function  tell(fd)  is  equivalent  to   lseek(fd,   0L,

       On  success,  lseek()  returns the seek pointer location as measured in
       bytes from the beginning of the file.  On failure, it  returns  -1  and
       sets errno to indicate the error.

       lseek() will fail and the seek pointer will remain unchanged if:

       EBADF          fd is not an open file descriptor.

       EINVAL         whence is not a proper value.

                      The  seek operation would result in an illegal file off-
                      set value for the file (for  example,  a  negative  file
                      offset for a file other than a character special file).

       ESPIPE         fd is associated with a pipe or a socket.

       dup(2V), open(2V)

       Seeking far beyond the end of a file, then writing, may create a gap or
       "hole", which occupies no physical space and reads as zeros.

       The constants L_SET, L_INCR, and L_XTND are provided  as  synonyms  for
       SEEK_SET, SEEK_CUR, and SEEK_END, respectively for backward compatibil-
       ity but they will disappear in a future release.  It is  unlikely  that
       the underlying constants 0, 1 and 2 will ever change.

                                21 January 1990                      LSEEK(2V)