LSEEK(2) | Linux Programmeurs Handleiding | LSEEK(2) |
lseek - herplaats lees/schrijf bestand-positie
#include <sys/types.h>
#include <unistd.h>
off_t lseek(int bi, off_t positie, int vanaf);
De lseek() functie herplaatst de positie van de bestandindicator bi naar het argument positie volgens de aanwijzing vanaf als volgt:
De lseek functie staat toe de bestand plaats te zetten ná het einde van het bestand (dit verandert niet de grootte van het bestand). Als later gegevens op deze positie worden geschreven, geven navolgende lees opdrachten in het gat ge-Nulde ('\0') bytes terug (totdat er daadwerkelijk gegevens in het gat worden geschreven).
Vanaf versie 3.1 ondersteund Linux de volgende additionele waarden voor vanaf:
In beide bovenstaande gevallen faalt lseek() als positie voorbij het einde van het bestand wijst.
Deze operaties staan applicaties toe om gaten in dun toegekende bestanden in kaart te brengen. Dit kan nuttig zijn voor applicaties zoals backup gereedschap, die ruimte kunnen sparen bij het aanmaken van backups en gaten kunnen bewaren, mits ze een mechanisme hebben om gaten de ontdekken.
Binnen de doelen van deze operaties bedoelen we met een gat een serie van nullen die (normaliter) niet zijn toegekend in de onderliggende bestandsopslag. Het is echter zo dat een bestandssysteem niet verplicht is gaten te rapporteren, daarom zijn deze operaties geen gegarandeerd mechanisme om de aan een bestand toegekende opslag ruimte in kaart te brengen. (Bovendien hoeft een serie van nullen die daadwerkelijk is geschreven naar de onderliggende opslag niet gerapporteerd te worden als een gat.) In de meest eenvoudige implementatie kan een bestandssysteem de operatie ondersteunen door te zorgen dat SEEK_HOLE altijd de afstand naar het einde van het bestand teruggeeft, en te zorgen dat SEEK_DATA altijd positie teruggeeft (m.a.w. zelfs als de locatie aangewezen door positie een gat is, kan het beschouwd worden te bestaan uit data die een serie van nullen is).
De _GNU_SOURCE test macro moet zijn gedefinieerd om de definities te verkrijgen van SEEK_DATA en SEEK_HOLE uit <unistd.h>.
De SEEK_HOLE en SEEK_DATA operaties worden ondersteund door de volgende bestandssystemen:
Bij geslaagde afronding geeft lseek de opgeleverde plaats zoals gemeten in bytes van het begin van het bestand, terug. Anders wordt een waarde van (off_t) -1 teruggegeven, en errno wordt gezet om de fout duidelijk te maken.
POSIX.1-2001, POSIX.1-2008, SVr4, 4.3BSD.
SEEK_DATA en SEEK_HOLE zijn niet-standaard uitbreidingen ook aanwezig inSolaris, FreeBSD, en DragonFly BSD; zij zijn voorgesteld voor opname in de volgende POSIX revisie (Issue 8).
Zie open(2) voor een discussie over de relatie tussen bestandsbeschrijvingen, open bestandsbeschrijvingen en bestanden.
Als de O_APPEND bestand status vlag is gezet op de open bestandsbeschrijving, dan zal write(2) altijd de bestandsafstand naar het einde van het bestand verplaatsen, onafhankelijk van het gebruik van lseek().
Het off_t data type is een positief of negatief geheel getal data type zoals gespecificeerd in POSIX.1.
Sommige apparaten zijn niet in status tot zoeken, en POSIX bepaald nietwelke apparaten het moeten lseek() ondersteunen.
Op Linux: het gebruik van lseek() zal op een terminal apparaat falen met de foutESPIPE.
dup(2), fallocate(2), fork(2), open(2), fseek(3), lseek64(3), posix_fallocate(3)
Deze pagina is onderdeel van release 5.10 van het Linux man-pages-project. Een beschrijving van het project, informatie over het melden van bugs en de nieuwste versie van deze pagina zijn op https://www.kernel.org/doc/man-pages/ te vinden.
De Nederlandse vertaling van deze handleiding is geschreven door Jos Boersema <joshb@xs4all.nl>, Mario Blättermann <mario.blaettermann@gmail.com> en Luc Castermans <luc.castermans@gmail.com>
Deze vertaling is vrije documentatie; lees de GNU General Public License Version 3 of later over de Copyright-voorwaarden. Er is geen AANSPRAKELIJKHEID.
Indien U fouten in de vertaling van deze handleiding zou vinden, stuur een e-mail naar debian-l10n-dutch@lists.debian.org.
13 augustus 2020 | Linux |