@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 @minus{}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