summaryrefslogtreecommitdiff
path: root/static/v10/man2/seek.2
blob: 303b50c0eb3c416ec7a60d6e1d582244bf6ecce2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
.TH SEEK 2
.CT 2 file_io
.SH NAME
seek, tell, lseek, llseek \(mi manipulate read/write pointer
.SH SYNOPSIS
.B int seek(fildes, offset, whence)
.br
.B long offset
.PP
.B long tell(fildes)
.PP
.B long lseek(fildes, offset, whence)
.B long offset;
.PP
.B Long llseek(fildes, offset, whence)
.br
.B Long offset;
.SH DESCRIPTION
.I Seek
sets the file pointer for the file
associated with
.I fildes
as follows:
.IP
If
.I whence
is 0, the pointer is set to
.I offset
bytes.
.IP
If
.I whence
is 1, the pointer is set to its current location plus
.IR offset .
.IP
If
.I whence
is 2, the pointer is set to the size of the
file plus
.IR offset .
.PP
.I Tell
returns the value of the file pointer associated with
.I fildes.
.PP
.I Lseek
is equivalent to
.I seek
followed by
.I tell.
.PP
.I Llseek
is like
.I lseek,
but handles
.CW Long ,
i.e. 64-bit, file pointers.
.PP
Seeking far beyond the end of a file, then writing,
creates a gap or `hole,' which occupies no
physical space and reads as zeros.
.PP
File pointers have security labels separate from files.
For security-label calculations,
.I seek
is understood to `write' the pointer,
.I tell
to `read' it.
If
.I whence
is 0 on
.I seek,
the new value of the file pointer does not depend on
the old value.
.SH "SEE ALSO"
.IR open (2),
.IR fseek (3)
.SH DIAGNOSTICS
.BR EBADF ,
.BR ESPIPE
.SH BUGS
.I Lseek
doesn't affect some special files.