_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

EBADF
    fd nie jest deskryptorem otwartego pliku.

EFAULT
    Problem z kopiowaniem wyników do przestrzeni użytkownika.

EINVAL
    whence jest nieprawidłowe.

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

STANDARDY
Linux.

ZOBACZ TAKŻE
lseek(2), open(2), lseek64(3)

TŁUMACZENIE
Tłumaczenie niniejszej strony podręcznika: 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 (https://www.gnu.org/licenses/gpl-3.0.html) 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.