Scroll to navigation

_llseek(2) System Calls Manual _llseek(2)

NAZWA

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

BIBLIOTEKA

Standardowa biblioteka C (libc, -lc)

SKŁADNIA

#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).

OPIS

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.

WARTOŚĆ ZWRACANA

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.

BŁĘDY

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

STANDARDY

Ta funkcja jest specyficzna dla Linuksa i nie powinna być wykorzystywana w programach, które mają być przenośne.

UWAGI

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

ZOBACZ TAKŻE

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

TŁUMACZENIE

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.

7 stycznia 2023 r. Linux man-pages 6.03