4.3BSD-Reno/share/man/cat2/seek.0
LSEEK(2) 1990 LSEEK(2)
NNAAMMEE
lseek - move read/write pointer
SSYYNNOOPPSSIISS
##iinncclluuddee <<uunniissttdd..hh>>
ppooss == llsseeeekk((dd,, ooffffsseett,, wwhheennccee))
ooffff__tt ppooss;;
iinntt dd;;
ooffff__tt ooffffsseett;;
iinntt wwhheennccee;;
DDEESSCCRRIIPPTTIIOONN
The descriptor _d refers to a file or device open for reading
and/or writing. _L_s_e_e_k sets the file pointer of _d as fol-
lows:
If _w_h_e_n_c_e is SEEK_SET, the pointer is set to _o_f_f_s_e_t
bytes.
If _w_h_e_n_c_e is SEEK_CUR, the pointer is set to its
current location plus _o_f_f_s_e_t.
If _w_h_e_n_c_e is SEEK_END, the pointer is set to the size
of the file plus _o_f_f_s_e_t.
Upon successful completion, the resulting pointer location
as measured in bytes from beginning of the file is returned.
Some devices are incapable of seeking. The value of the
pointer associated with such a device is undefined.
NNOOTTEESS
Seeking far beyond the end of a file, then writing, creates
a gap or "hole", which occupies no physical space and reads
as zeros.
RREETTUURRNN VVAALLUUEE
Upon successful completion, the current file pointer value
is returned. Otherwise, a value of -1 is returned and _e_r_r_n_o
is set to indicate the error.
EERRRROORRSS
_L_s_e_e_k will fail and the file pointer will remain unchanged
if:
[EBADF] _F_i_l_d_e_s is not an open file descriptor.
[ESPIPE] _F_i_l_d_e_s is associated with a pipe or a socket.
[EINVAL] _W_h_e_n_c_e is not a proper value.
Printed 7/27/90 May 1
LSEEK(2) 1990 LSEEK(2)
SSEEEE AALLSSOO
dup(2), open(2)
BBUUGGSS
This document's use of _w_h_e_n_c_e is incorrect English, but
maintained for historical reasons.
Printed 7/27/90 May 2