.\" -*- coding: UTF-8 -*- .\" Copyright (c) 1980, 1991 Regents of the University of California. .\" and Copyright (c) 2011, Michael Kerrisk .\" All rights reserved. .\" .\" SPDX-License-Identifier: BSD-4-Clause-UC .\" .\" @(#)lseek.2 6.5 (Berkeley) 3/10/91 .\" .\" Modified 1993-07-23 by Rik Faith .\" Modified 1995-06-10 by Andries Brouwer .\" Modified 1996-10-31 by Eric S. Raymond .\" Modified 1998-01-17 by Michael Haardt .\" .\" Modified 2001-09-24 by Michael Haardt .\" Modified 2003-08-21 by Andries Brouwer .\" 2011-09-18, mtk, Added SEEK_DATA + SEEK_HOLE .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH lseek 2 "15 czerwca 2024 r." "Linux man\-pages 6.9.1" .SH NAZWA lseek \- zmienia pozycję przesunięcia pliku do odczytu/zapisu .SH BIBLIOTEKA Standardowa biblioteka C (\fIlibc\fP, \fI\-lc\fP) .SH SKŁADNIA .nf \fB#include \fP .P \fBoff_t lseek(int \fP\fIfd\fP\fB, off_t \fP\fIoffset\fP\fB, int \fP\fIwhence\fP\fB);\fP .fi .SH OPIS \fBlseek\fP zmienia przesunięcie opisu otwartego pliku (OFD), powiązanego z deskryptorem pliku \fIfd\fP na wartość podaną w argumencie \fIoffset\fP, zgodnie z dyrektywą \fIwhence\fP w następujący sposób: .TP \fBSEEK_SET\fP Przesunięcie pliku jest ustawiane na \fIoffset\fP bajtów. .TP \fBSEEK_CUR\fP Przesunięcie pliku jest ustawiane na aktualną pozycję plus \fIoffset\fP bajtów. .TP \fBSEEK_END\fP Przesunięcie pliku jest ustawiane na rozmiar pliku plus \fIoffset\fP bajtów. .P \fBlseek\fP() allows the file offset to be set beyond the end of the file (but this does not change the size of the file). If data is later written at this point, subsequent reads of the data in the gap (a "hole") return null bytes (\[aq]\[rs]0\[aq]) until data is actually written into the gap. .SS "Szukanie danych i dziur w pliku" Od Linuksa 3.1, Linux obsługuje następujące dodatkowe wartości \fIwhence\fP: .TP \fBSEEK_DATA\fP Dopasowuje przesunięcie pliku do następnego położenia w pliku, większego lub równego przesunięciu \fIoffset\fP, które zawiera dane. Jeśli \fIoffset\fP wskazuje na dane, to przesunięcie pliku jest ustawiane na \fIoffset\fP. .TP \fBSEEK_HOLE\fP Dopasowuje przesunięcie pliku do następnej dziury w pliku, większej lub równej przesunięciu \fIoffset\fP. Jeśli \fIoffset\fP wskazuje wewnątrz dziury, to przesunięcie pliku jest ustawiane na \fIoffset\fP. Jeśli po \fIoffset\fP nie występuje dziura, to przesunięcie pliku jest dopasowane do końca pliku (tj. występuje domniemana dziura na końcu każdego pliku). .P W obu powyższych przypadkach \fBlseek\fP() zawiedzie, jeśli \fIoffset\fP wskazuje poza koniec pliku. .P Opisywane operacje pozwalają aplikacjom na lokalizowanie dziur w rzadko (elastycznie) alokowanych plikach. Może okazać się przydatne w aplikacjach takich jak narzędzia kopii zapasowej, które mogą zaoszczędzić miejsce przy tworzeniu kopii zapasowej, przy zachowaniu dziur, jeśli posiadają mechanizm do ich odkrywania. .P .\" https://lkml.org/lkml/2011/4/22/79 .\" http://lwn.net/Articles/440255/ .\" http://blogs.oracle.com/bonwick/entry/seek_hole_and_seek_data Do celów tych operacji, za dziurę uważa się sekwencję zer, która (normalnie) nie byłaby przydzielona w przedmiotowym nośniku pliku. Jednak system plików nie ma obowiązku informowania o dziurach, tak więc operacje te nie są pewnym mechanizmem wyszukiwania przestrzeni rzeczywiście przydzielonej plikowi (co więcej, sekwencja zer, która rzeczywiście została zapisana na przedmiotowym nośniku może nie zostać zgłoszona jako dziura). W najprostszej implementacji, system plików może obsługiwać te operacje w ten sposób, że \fBSEEK_HOLE\fP zawsze zwróci przesunięcie końca pliku, a \fBSEEK_DATA\fP zawsze zwróci \fIoffset\fP (tj. nawet gdy położenie, do którego odnosi się \fIoffset\fP jest dziurą, może być rozważane jako składające się z danych będących sekwencją zer). .P Konieczne jest zdefiniowana makra \fB_GNU_SOURCE\fP, aby pozyskać definicje \fBSEEK_DATA\fP i \fBSEEK_HOLE\fP z \fI\fP. .P Operacje \fBSEEK_HOLE\fP i \fBSEEK_DATA\fP są obsługiwane w następujących systemach plików: .IP \[bu] 3 Btrfs (od Linuksa 3.1) .IP \[bu] .\" commit 93862d5e1ab875664c6cc95254fc365028a48bb1 OCFS (od Linuksa 3.2) .IP \[bu] XFS (od Linuksa 3.5) .IP \[bu] ext4 (od Linusa 3.8) .IP \[bu] \fBtmpfs\fP(5) (od Linuksa 3.8) .IP \[bu] .\" commit 1c6dcbe5ceff81c2cf8d929646af675cd59fe7c0 .\" commit 24bab491220faa446d945624086d838af41d616c NFS (od Linuksa 3.18) .IP \[bu] .\" commit 0b5da8db145bfd44266ac964a2636a0cf8d7c286 FUSE (od Linuksa 4.5) .IP \[bu] .\" commit 3a27411cb4bc3ce31db228e3569ad01b462a4310 GFS2 (od Linuksa 4.15) .SH "WARTOŚĆ ZWRACANA" Po pomyślnym zakończeniu \fBlseek\fP() zwraca ustawione przesunięcie, liczone w bajtach od początku pliku. W razie wystąpienia błędu, zwracana jest wartość \fI(off_t)\ \-1\fP oraz ustawiane jest \fIerrno\fP w sposób wskazujący rodzaj błędu. .SH BŁĘDY .TP \fBEBADF\fP \fIfd\fP nie jest deskryptorem otwartego pliku. .TP \fBEINVAL\fP .\" Some systems may allow negative offsets for character devices .\" and/or for remote filesystems. \fIwhence\fP jest nieprawidłowe. Albo: wynikowe przesunięcie pliku byłoby ujemne lub poza końcem przeszukiwalnego urządzenia. .TP \fBENXIO\fP \fIwhence\fP wynosi \fBSEEK_DATA\fP lub \fBSEEK_HOLE\fP, a \fIoffset\fP jest poza końcem pliku albo \fIwhence\fP wynosi \fBSEEK_DATA\fP, a \fIoffset\fP jest w dziurze na końcu pliku. .TP \fBEOVERFLOW\fP .\" HP-UX 11 says EINVAL for this case (but POSIX.1 says EOVERFLOW) Wynikowego przesunięcia pliku nie da się przedstawić w \fIoff_t\fP. .TP \fBESPIPE\fP \fIfd\fP jest związany z potokiem, gniazdem, lub FIFO. .SH WERSJE .\" Other systems return the number of written characters, .\" using SEEK_SET to set the counter. (Of written characters.) W Linuksie, użycie \fBlseek\fP() na urządzeniu terminala zawiedzie z błędem \fBESPIPE\fP. .SH STANDARDY POSIX.1\-2008. .SH HISTORIA POSIX.1\-2001, SVr4, 4.3BSD. .P .\" FIXME . Review http://austingroupbugs.net/view.php?id=415 in the future \fBSEEK_DATA\fP i \fBSEEK_HOLE\fP są niestandardowymi rozszerzeniami obecnymi również w Solarisie, FreeBSD i DragonFly BSD; proponuje się włączenie ich do następnej rewizji POSIX (Issue 8). .SH UWAGI W podręczniku \fBopen\fP(2) opisano relacje pomiędzy deskryptorami pliku, opisami otwartego pliku (OFD) i plikami. .P Jeśli znacznik statusu \fBO_APPEND\fP jest ustawiony na opisie otwartego pliku (OFD), to \fBwrite\fP(2) \fIzawsze\fP przenosi przesunięcie pliku na koniec pliku, niezależnie od użycia \fBlseek\fP(). .P Niektóre urządzenia nie obsługują tego typu operacji, a POSIX nie opisuje, które urządzenie muszą obsługiwać \fBlseek\fP(). .SH "ZOBACZ TAKŻE" \fBdup\fP(2), \fBfallocate\fP(2), \fBfork\fP(2), \fBopen\fP(2), \fBfseek\fP(3), \fBlseek64\fP(3), \fBposix_fallocate\fP(3) .PP .SH TŁUMACZENIE Autorami polskiego tłumaczenia niniejszej strony podręcznika są: Przemek Borys , Andrzej Krzysztofowicz i Michał Kułach . .PP Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach licencji można uzyskać zapoznając się z .UR https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License w wersji 3 .UE lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI. .PP Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy dyskusyjnej .MT manpages-pl-list@lists.sourceforge.net .ME .