man(1) Manual page archive

     LSEEK(2)                                                 LSEEK(2)

          lseek, tell - move read/write pointer

          long lseek(fildes, offset, whence)
          long offset;

          long tell(fildes)

          The file descriptor refers to a file open for reading or
          writing.  The read (resp. write) pointer for the file is set
          as follows:

               If whence is 0, the pointer is set to offset bytes.

               If whence is 1, the pointer is set to its current loca-
               tion plus offset.

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

          The returned value is the resulting pointer location.

          The obsolete function tell(fildes) is identical to
          lseek(fildes, 0L, 1 ).

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

          open(2), creat(2), fseek(3)

          -1 is returned for an undefined file descriptor, seek on a
          pipe, or seek to a position before the beginning of file.

          Lseek is a no-op on character special files.