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.

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

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.8