

lseek()                COHERENT System Call               lseek()




Set read/write position

lloonngg llsseeeekk(_f_d, _w_h_e_r_e, _h_o_w)
iinntt _f_d, _h_o_w; lloonngg _w_h_e_r_e;

llsseeeekk changes the _s_e_e_k _p_o_s_i_t_i_o_n, or the point within a file where
the next read or write  operation is performed.  fd is the file's
file descriptor, which is returned by ooppeenn.

where and  how describe the  new seek position.   where gives the
number of  bytes that you wish  to move the seek  position; it is
measured from the beginning of the  file if how is zero, from the
current seek position if how is  one, or from the end of the file
if how is  two.  A successful call to lseek  returns the new seek
position.  For example,


        position = lseek(filename, 100L, 0);


moves the seek position 100 bytes past the beginning of the file;
whereas


        position = lseek(filename, 0L, 1);


merely returns the current seek position, and does not change the
seek position at all.

Sparse files may be created by seeking beyond the current size of
the file  and writing.  The ``hole'' between the  end of the file
and where  the write occurs  is read as  zero and will  occupy no
disk space.  For example, if you llsseeeekk 10,000 bytes past the cur-
rent end  of file and  write a string,  the data will  be written
10,000 bytes past the old  end of file and all intervening matter
will be considered part of the file.

lseek differs  from its  cousin fseek in  that lseek is  a system
call and  uses a file  descriptor, whereas fseek is  a C function
and uses a FILE pointer.

***** See Also *****

COHERENT system calls, STDIO

***** Diagnostics *****

lseek  returns -1L  on an  error, such as  seeking to  a negative
position.  If no error occurs, it returns the new seek position.

***** Notes *****

llsseeeekk is permitted on character-special files, but drivers do not


COHERENT Lexicon                                           Page 1




lseek()                COHERENT System Call               lseek()



generally implement it.  As a result, seeking a terminal will not
generate an error but will have no discernible effect.























































COHERENT Lexicon                                           Page 2


