Unix |
Unix v7 |
|
![]() |
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 location 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.
(lseek = 19.)
(file descriptor in r0)
sys lseek; offset1; offset2; whence
Offset1 and offset2 are the high and low words of offset; r0 and r1 contain the pointer upon return.
![]() |
lseek(2) | ![]() |