COHERENT manpages
This page displays the COHERENT manpage for lseek() [Set read/write position].
List of available manpages
Index
lseek() -- System Call (libc)
Set read/write position
#include <unistd.h>
long lseek(fd, where, how)
int fd, how; long where;
lseek() changes the seek position, 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 open().
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 equals SEEK_SET (zero), from the current seek
position if how equals SEEK_CUR (one), and from the end of the file if how
equals SEEK_END (two). A successful call to lseek() returns the new seek
position. For example,
position = lseek(fd, 100L, SEEK_SET);
moves the seek position 100 bytes past the beginning of the file; whereas
position = lseek(fd, 0L, SEEK_CUR);
returns the current seek position and does not change the seek position at
all.
You can create a sparse file 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
lseek() 10,000 bytes past the current 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.
If all goes well, lseek() returns the new seek position. If an error
occurs, such as seeking to a negative position, lseek() returns -1L and
sets errno to an appropriate value.
See Also
libc,
unistd.h
POSIX Standard, §6.5.3
Notes
lseek() is permitted on character-special files, but drivers do not
generally implement it. As a result, seeking a terminal will not generate
an error but will have no discernible effect.











