_llseek(2) System Calls Manual _llseek(2)

_llseek - zmienia pozycję przesunięcia pliku do odczytu/zapisu

Standardowa biblioteka C (libc, -lc)

#include <sys/syscall.h>           /* Definicja stałych SYS_* */
#include <unistd.h>
int syscall(SYS__llseek, unsigned int fd, unsigned long offset_high,
            unsigned long offset_low, loff_t *result,
            unsigned int whence);

Uwaga: glibc nie udostępnia opakowania dla _llseek(), co wymusza użycie syscall(2).

Uwaga: informacje o funkcji bibliotecznej llseek(3) znajdują się w podręczniku lseek64(3).

Wywołanie systemowe _llseek() zmienia pozycję przesunięcia opisu otwartego pliku (OFD), powiązanego z deskryptorem pliku fd na wartość

(offset_high << 32) | offset_low

Nowe przesunięcie jest przesunięciem w bajtach, względem początku pliku, względem bieżącego przesunięcia w pliku lub względem końca pliku, w zależności od tego, czy whence jest odpowiednio równe SEEK_SET, SEEK_CUR, czy SEEK_END.

Nowe przesunięcie pliku jest zwracane w argumencie result. Typem loff_t jest typ 64-bitowy ze znakiem.

To wywołanie systemowe istnieje na różnych platformach 32-bitowych, aby wspierać duże zmiany przesunięć plików.

W razie pomyślnego zakończenia, _llseek() zwraca 0. W przeciwnym przypadku, zwracana jest wartość -1 i ustawiane jest errno dla wskazania rodzaju błędu.

fd nie jest deskryptorem otwartego pliku.
Problem z kopiowaniem wyników do przestrzeni użytkownika.
whence jest nieprawidłowe.

Zamiast opisywanego wywołania systemowego, prawdopodobnie lepszym pomysłem będzie użycie funkcji opakowującej lseek(2).

Linux.

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

Autorami polskiego tłumaczenia niniejszej strony podręcznika są: Andrzej Krzysztofowicz <ankry@green.mf.pg.gda.pl> i Michał Kułach <michal.kulach@gmail.com>

Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach licencji można uzyskać zapoznając się z GNU General Public License w wersji 3 lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI.

Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy dyskusyjnej manpages-pl-list@lists.sourceforge.net.

2 maja 2024 r. Linux man-pages 6.9.1