Scroll to navigation

readahead(2) System Calls Manual readahead(2)

NUME

readahead - inițiază citirea în avans a fișierului în memoria cache a paginii

BIBLIOTECA

Biblioteca C standard (libc, -lc)

REZUMAT

#define _GNU_SOURCE             /* Consultați feature_test_macros(7) */
#include <fcntl.h>
ssize_t readahead(int fd, off64_t offset, size_t count);

DESCRIERE

readahead() inițiază citirea în avans „readahead” a unui fișier astfel încât citirile ulterioare din acel fișier să fie satisfăcute din memoria cache și să nu blocheze operațiile de intrare/ieșire pe disc (presupunând că citirea în avans a fost inițiată suficient de devreme și că alte activități din sistem nu au golit între timp paginile din memoria cache).

Argumentul fd este un descriptor de fișier care identifică fișierul care urmează să fie citit. Argumentul offset specifică punctul de plecare de la care trebuie citite datele, iar count specifică numărul de octeți care trebuie citiți. In/Ieș se efectuează în pagini întregi, astfel încât offset este rotunjit efectiv până la o limită de pagină, iar octeții sunt citiți până la următoarea limită de pagină mai mare sau egală cu (offset+count). readahead() nu citește dincolo de sfârșitul fișierului. Decalajul de fișier al descrierii fișierului deschis la care se face referire prin descriptorul de fișier fd rămâne neschimbat.

VALOAREA RETURNATĂ

În caz de succes, readahead() returnează 0; în caz de eșec, se returnează -1, cu errno configurată pentru a indica eroarea.

ERORI

fd nu este un descriptor de fișier valid sau nu este deschis pentru citire.
fd nu se referă la un tip de fișier la care se poate aplica readahead().

VERSIUNI

Apelul de sistem readahead() a apărut în Linux 2.4.13; suportul glibc a fost oferit începând cu glibc 2.3.

STANDARDE

Apelul de sistem readahead() este specific Linux, iar utilizarea sa trebuie evitată în aplicațiile portabile.

NOTE

Pe unele arhitecturi pe 32 de biți, semnătura de apelare pentru acest apel de sistem este diferită, din motivele descrise în syscall(2).

ERORI

readahead() încearcă să programeze citirile în fundal și să se întoarcă imediat. Cu toate acestea, este posibil să se blocheze în timp ce citește metadatele din sistemul de fișiere necesare pentru a localiza blocurile solicitate. Acest lucru se întâmplă frecvent cu ext[234] în cazul fișierelor mari care utilizează blocuri indirecte în loc de „extents”, dând impresia că apelul se blochează până când datele solicitate au fost citite.

CONSULTAȚI ȘI

lseek(2), madvise(2), mmap(2), posix_fadvise(2), read(2)

TRADUCERE

Traducerea în limba română a acestui manual a fost creată 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.

4 decembrie 2022 Pagini de manual de Linux 6.03