summaryrefslogtreecommitdiff
path: root/gnulib/doc/posix-functions/lseek.texi
blob: 1c87759b6e35943a6e5db7e3066500a5db442304 (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
@node lseek
@section @code{lseek}
@findex lseek

POSIX specification:@* @url{http://www.opengroup.org/onlinepubs/9699919799/functions/lseek.html}

Gnulib module: lseek

Portability problems fixed by Gnulib:
@itemize
@item
On platforms where @code{off_t} is a 32-bit type, @code{lseek} does not work
correctly with files larger than 2 GB.  (Cf. @code{AC_SYS_LARGEFILE}.)
@item
This function mistakenly succeeds on pipes on some platforms: mingw, MSVC 9, BeOS.
@end itemize

Portability problems not fixed by Gnulib:
@itemize
@item
POSIX does not specify which file descriptors support seeking and which don't.
In practice, regular files and block devices support seeking, and ttys, pipes,
and most character devices don't support it.
@item
When the third argument is invalid, POSIX says that @code{lseek} should set
@code{errno} to @code{EINVAL} and return -1, but in this situation a
@code{SIGSYS} signal is raised on some platforms:
IRIX 6.5.
@item
When the @code{lseek} function fails, POSIX says that the file offset remains
unchanged.  But on some platforms, attempting to set a negative file offset
fails and sets the file offset to 0:
BeOS.
@end itemize