DOKK / manpages / debian 12 / manpages-dev / llseek.2.en
_llseek(2) System Calls Manual _llseek(2)

_llseek - reposition read/write file offset

Standard C library (libc, -lc)

#include <sys/syscall.h>      /* Definition of SYS_* constants */
#include <unistd.h>
int syscall(SYS__llseek, unsigned int fd, unsigned long offset_high,
            unsigned long offset_low, loff_t *result,
            unsigned int whence);

Note: glibc provides no wrapper for _llseek(), necessitating the use of syscall(2).

Note: for information about the llseek(3) library function, see lseek64(3).

The _llseek() system call repositions the offset of the open file description associated with the file descriptor fd to the value

(offset_high << 32) | offset_low

This new offset is a byte offset relative to the beginning of the file, the current file offset, or the end of the file, depending on whether whence is SEEK_SET, SEEK_CUR, or SEEK_END, respectively.

The new file offset is returned in the argument result. The type loff_t is a 64-bit signed type.

This system call exists on various 32-bit platforms to support seeking to large file offsets.

Upon successful completion, _llseek() returns 0. Otherwise, a value of -1 is returned and errno is set to indicate the error.

fd is not an open file descriptor.
Problem with copying results to user space.
whence is invalid.

This function is Linux-specific, and should not be used in programs intended to be portable.

You probably want to use the lseek(2) wrapper function instead.

lseek(2), open(2), lseek64(3)

2023-01-07 Linux man-pages 6.03