up | Inhaltsverzeichniss | Kommentar

Manual page for lseek(2)

lseek - move read/write file pointer

SYNOPSIS

#include <sys/types.h>
#include <unistd.h>

off_t lseek(int fildes, off_t offset, int whence);

DESCRIPTION

The lseek() function sets the file pointer associated with the open file descriptor specified by fildes as follows:

The symbolic constants SEEK_SET, SEEK_CUR, and SEEK_END are defined in the header <unistd.h>.

Some devices are incapable of seeking. The value of the file pointer associated with such a device is undefined.

The lseek() function allows the file pointer to be set beyond the existing data in the file. If data are later written at this point, subsequent reads in the gap between the previous end of data and the newly written data will return bytes of value 0 until data are written into the gap.

If fildes is a remote file descriptor and offset is negative, lseek() returns the file pointer even if it is negative. The lseek() function will not, by itself, extend the size of a file.

RETURN VALUES

Upon successful completion, the resulting offset, as measured in bytes from the beginning of the file, is returned. Otherwise, (off_t)-1 is returned, errno is set to indicate the error and the file offset will remain unchanged.

ERRORS

The lseek() function fails if:
EBADF
The fildes argument is not an open file descriptor.
EINVAL
The whence argument is not SEEK_SET, SEEK_CUR, or SEEK_END.
EINVAL
The fildes argument is not a remote file descriptor, and the resulting file pointer would be negative.
EOVERFLOW
The resulting file offset would be a value which cannot be represented correctly in an object of type off_t for regular files.
ESPIPE
The fildes argument is associated with a pipe, a FIFO, or a socket.

USAGE

The lseek() function has an explicit 64-bit equivalent. See interface64.5

ATTRIBUTES

See attributes.5 for descriptions of the following attributes:

+---------------+-------------------+
|ATTRIBUTE TYPE |  ATTRIBUTE VALUE  |
+---------------+-------------------+
|MT-Level       | Async-Signal-Safe |
+---------------+-------------------+

SEE ALSO

creat.2 dup.2 fcntl.2 open.2 read.2 write.2 attributes.5 interface64.5

NOTES

In multithreaded programs, using lseek() in conjunction with a read() or write() on a file descriptor shared amongst more than one thread is not an atomic operation. To ensure atomicity, use pread() or pwrite().


index | Inhaltsverzeichniss | Kommentar

Created by unroff & hp-tools. © by Hans-Peter Bischof. All Rights Reserved (1997).

Last modified 07/October/97