Scroll to navigation

lseek64(3) Library Functions Manual lseek64(3)

NUME

lseek64 - repoziționează poziția fișierului de citire/scriere pe 64 de biți

BIBLIOTECA

Biblioteca C standard (libc, -lc)

REZUMAT

#define _LARGEFILE64_SOURCE     /* Consultați feature_test_macros(7) */
#include <sys/types.h>
#include <unistd.h>
off64_t lseek64(int fd, off64_t offset, int whence);

DESCRIERE

Familia de funcții lseek() repoziționează poziția fișierului deschis asociat descriptorului de fișier fd la offset octeți în raport cu începutul, poziția curentă sau sfârșitul fișierului, atunci când whence are valoarea SEEK_SET, SEEK_CUR sau SEEK_END, respectiv SEEK_END.

Pentru mai multe detalii, valoarea de returnare și erorile de ieșire, a se vedea lseek(2).

Sunt disponibile patru interfețe: lseek(), lseek64(), llseek() și _llseek().

lseek()

Prototip:


off_t lseek(int fd, off_t offset, int whence);

Funcția de învăluire lseek() a bibliotecii C utilizează tipul off_t. Acesta este un tip semnat pe 32 de biți pe arhitecturi pe 32 de biți, cu excepția cazului în care se compilează cu


#define _FILE_OFFSET_BITS 64

caz în care este un tip semnat pe 64 de biți.

lseek64()

Prototip:


off64_t lseek64(int fd, off64_t offset, int whence);

Funcția de bibliotecă lseek64() utilizează un tip pe 64 de biți chiar și atunci când off_t este un tip pe 32 de biți. Prototipul său (și tipul off64_t) este disponibil numai atunci când se compilează cu


#define _LARGEFILE64_SOURCE

Funcția lseek64() este disponibilă începând cu glibc 2.1.

llseek()

Prototip:


loff_t llseek(int fd, loff_t offset, int whence);

Tipul loff_t este un tip semnat pe 64 de biți. Funcția de bibliotecă llseek() este disponibilă în glibc și funcționează fără definiții speciale. Cu toate acestea, anteturile glibc nu oferă un prototip. Utilizatorii ar trebui să adauge prototipul de mai sus, sau ceva echivalent, în sursa proprie. Atunci când utilizatorii s-au plâns de pierderea de date cauzată de o compilare greșită a e2fsck(8), glibc 2.1.3 a adăugat avertismentul de timp de legătură


"funcția „llseek()” poate fi periculoasă; utilizați în schimb funcția „lseek64()”."

Acest lucru face ca această funcție să nu poată fi utilizată dacă se dorește o compilare fără avertismente.

Începând cu glibc 2.28, acest simbol de funcție nu mai este disponibil pentru aplicațiile nou vinculate.

_llseek()

Pe arhitecturile pe 32 de biți, acesta este apelul de sistem care este utilizat (de către funcțiile de învăluire ale bibliotecii C) pentru a implementa toate funcțiile de mai sus. Prototipul este:


int _llseek(int fd, off_t offset_hi, off_t offset_lo,
            loff_t *result, int whence);

Pentru mai multe detalii, a se vedea llseek(2).

Sistemele pe 64 de biți nu au nevoie de un apel de sistem _llseek(). În schimb, acestea au un apel de sistem lseek(2) care acceptă poziții de fișiere pe 64 de biți.

ATRIBUTE

Pentru o explicație a termenilor folosiți în această secțiune, a se vedea attributes(7).

Interfață Atribut Valoare
lseek64() Siguranța firelor MT-Safe

NOTE

lseek64() este una dintre funcțiile care au fost specificate în specificația Large File Summit (LFS), finalizată în 1996. Scopul acestei specificații a fost de a oferi un suport tranzitoriu care să permită aplicațiilor de pe sistemele pe 32 de biți să acceseze fișiere a căror dimensiune depășește dimensiunea care poate fi reprezentată cu un tip off_t pe 32 de biți. După cum s-a menționat mai sus, acest simbol este expus de fișierele antet dacă este definită macrocomanda de testare a caracteristicii _LARGEFILE64_SOURCE. Alternativ, pe un sistem pe 32 de biți, simbolul lseek este transformat în alias de lseek64 dacă macro _FILE_OFFSET_BITS este definit cu valoarea 64.

CONSULTAȚI ȘI

llseek(2), lseek(2)

TRADUCERE

Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>

Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE.

Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-ro@lists.sourceforge.net.

20 iulie 2023 Pagini de manual de Linux 6.05.01