April 2024 | ||||||
Mo | Tu | We | Th | Fr | Sa | Su |
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 | 1 | 2 | 3 | 4 | 5 |
6 | 7 | 8 | 9 | 10 | 11 | 12 |
off64_t lseek64(int fd, off64_t offset, int whence);
For more details, return value, and errors, see lseek(2).
Four interfaces are available: lseek(2), lseek64(), llseek(2), and the raw system call _llseek(2).
off_t lseek(int fd, off_t offset, int whence);
lseek(2) uses the type off_t. This is a 32-bit signed type on 32-bit architectures, unless one compiles with
#define _FILE_OFFSET_BITS 64in which case it is a 64-bit signed type.
off64_t lseek64(int fd, off64_t offset, int whence);
The library routine lseek64() uses a 64-bit type even when off_t is a 32-bit type. Its prototype (and the type off64_t) is available only when one compiles with
#define _LARGEFILE64_SOURCEThe function lseek64() is available since glibc 2.1, and is defined to be an alias for llseek().
loff_t llseek(int fd, loff_t offset, int whence);
The type loff_t is a 64-bit signed type. The library routine llseek() is available in libc5 and glibc and works without special defines. Its prototype was given in <unistd.h> with libc5, but glibc does not provide a prototype. This is bad, since a prototype is needed. Users should add the above prototype, or something equivalent, to their own source. When users complained about data loss caused by a miscompilation of e2fsck(8), glibc 2.1.3 added the link-time warning
"the `llseek' function may be dangerous; use `lseek64' instead."
This makes this function unusable if one desires a warning-free compilation.
int _llseek(int fd, off_t offset_hi, off_t offset_lo, loff_t *result, int whence);
For more details, see llseek(2).