87 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
			
		
		
	
	
			87 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
.\" Copyright (c) 1980 Regents of the University of California.
 | 
						|
.\" All rights reserved.  The Berkeley software License Agreement
 | 
						|
.\" specifies the terms and conditions for redistribution.
 | 
						|
.\"
 | 
						|
.\"	@(#)lseek.2	6.3 (Berkeley) 2/24/86
 | 
						|
.\"
 | 
						|
.TH LSEEK 2 "February 24, 1986"
 | 
						|
.UC 4
 | 
						|
.SH NAME
 | 
						|
lseek \- move read/write pointer
 | 
						|
.SH SYNOPSIS
 | 
						|
.nf
 | 
						|
.ft B
 | 
						|
#include <sys/types.h>
 | 
						|
#include <unistd.h>
 | 
						|
 | 
						|
.ta +1.8i +0.6i
 | 
						|
#define SEEK_SET	0	/* offset is absolute */
 | 
						|
#define SEEK_CUR	1	/* relative to current position */
 | 
						|
#define SEEK_END	2	/* relative to end of file */
 | 
						|
 | 
						|
off_t lseek(int d, off_t offset, int whence)
 | 
						|
.fi
 | 
						|
.ft R
 | 
						|
.SH DESCRIPTION
 | 
						|
The descriptor 
 | 
						|
.I d
 | 
						|
refers to a file or device open for reading and/or writing.
 | 
						|
.B Lseek
 | 
						|
sets the file pointer of
 | 
						|
.I d
 | 
						|
as follows:
 | 
						|
.IP
 | 
						|
If
 | 
						|
.I whence
 | 
						|
is SEEK_SET, the pointer is set to
 | 
						|
.I offset
 | 
						|
bytes.
 | 
						|
.IP
 | 
						|
If
 | 
						|
.I whence
 | 
						|
is SEEK_CUR, the pointer is set to its current location plus
 | 
						|
.IR offset .
 | 
						|
.IP
 | 
						|
If
 | 
						|
.I whence
 | 
						|
is SEEK_END, the pointer is set to the size of the
 | 
						|
file plus
 | 
						|
.IR offset .
 | 
						|
.PP
 | 
						|
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.
 | 
						|
.SH NOTES
 | 
						|
Seeking far beyond the end of a file, then writing,
 | 
						|
creates a gap or \*(lqhole\*(rq, which occupies no
 | 
						|
physical space and reads as zeros.
 | 
						|
.SH "RETURN VALUE
 | 
						|
Upon successful completion,
 | 
						|
the current file pointer value is returned.
 | 
						|
Otherwise,
 | 
						|
a value of \-1 is returned and \fBerrno\fP is set to indicate
 | 
						|
the error.
 | 
						|
.SH "ERRORS
 | 
						|
.B Lseek
 | 
						|
will fail and the file pointer will remain unchanged if:
 | 
						|
.TP 15
 | 
						|
[EBADF]
 | 
						|
.I Fildes
 | 
						|
is not an open file descriptor.
 | 
						|
.TP 15
 | 
						|
[ESPIPE]
 | 
						|
.I Fildes
 | 
						|
is associated with a pipe or a socket.
 | 
						|
.TP 15
 | 
						|
[EINVAL]
 | 
						|
.I Whence
 | 
						|
is not a proper value.
 | 
						|
.SH "SEE ALSO"
 | 
						|
.BR fcntl (2),
 | 
						|
.BR open (2).
 | 
						|
.SH BUGS
 | 
						|
This document's use of
 | 
						|
.I whence
 | 
						|
is incorrect English, but maintained for historical reasons.
 |