readahead(2) System Calls Manual readahead(2) NUME readahead - iniiaza citirea in avans a fiierului in memoria cache a paginii BIBLIOTECA Biblioteca C standard (libc, -lc) REZUMAT #define _GNU_SOURCE /* Consultai feature_test_macros(7) */ #define _FILE_OFFSET_BITS 64 #include ssize_t readahead(int fd, off_t offset, size_t count); DESCRIERE readahead() iniiaza citirea in avans ,,readahead" a unui fiier astfel incat citirile ulterioare din acel fiier sa fie satisfacute din memoria cache i sa nu blocheze operaiile de intrare/ieire pe disc (presupunand ca citirea in avans a fost iniiata suficient de devreme i ca alte activitai din sistem nu au golit intre timp paginile din memoria cache). Argumentul fd este un descriptor de fiier care identifica fiierul care urmeaza sa fie citit. Argumentul offset specifica punctul de plecare de la care trebuie citite datele, iar count specifica numarul de octei care trebuie citii. In/Ie se efectueaza in pagini intregi, astfel incat offset este rotunjit efectiv pana la o limita de pagina, iar octeii sunt citii pana la urmatoarea limita de pagina mai mare sau egala cu (offset+count). readahead() nu citete dincolo de sfaritul fiierului. Decalajul de fiier al descrierii fiierului deschis la care se face referire prin descriptorul de fiier fd ramane neschimbat. VALOAREA RETURNATA In caz de succes, readahead() returneaza 0; in caz de eec, se returneaza -1, cu errno configurata pentru a indica eroarea. ERORI-IEIRE EBADF fd nu este un descriptor de fiier valid sau nu este deschis pentru citire. EINVAL fd nu se refera la un tip de fiier la care se poate aplica readahead(). VERSIUNI Pe unele arhitecturi pe 32 de bii, semnatura de apelare pentru acest apel de sistem este diferita, din motivele descrise in syscall(2). STANDARDE Linux. ISTORIC Linux 2.4.13, glibc 2.3. NOTE _FILE_OFFSET_BITS ar trebui sa fie definita ca fiind de 64 bii in codul care folosete un indicator catre readahead, daca codul este destinat sa fie portabil pe platformele tradiionale x86 i ARM pe 32 de bii unde laimea lui off_t este implicita la 32 bii. ERORI readahead() incearca sa programeze citirile in fundal i sa se intoarca imediat. Cu toate acestea, este posibil sa se blocheze in timp ce citete metadatele din sistemul de fiiere necesare pentru a localiza blocurile solicitate. Acest lucru se intampla frecvent cu ext[234] in cazul fiierelor mari care utilizeaza blocuri indirecte in loc de ,,extents", dand impresia ca apelul se blocheaza pana cand datele solicitate au fost citite. CONSULTAI I lseek(2), madvise(2), mmap(2), posix_fadvise(2), read(2) TRADUCERE Traducerea in limba romana a acestui manual a fost facuta de Remus- Gabriel Chelu Aceasta traducere este documentaie gratuita; citii Licena publica generala GNU Versiunea 3 sau o versiune ulterioara cu privire la condiii privind drepturile de autor. NU se asuma NICIO RESPONSABILITATE. Daca gasii erori in traducerea acestui manual, va rugam sa trimitei un e-mail la . Pagini de manual de Linux 6.06 31 octombrie 2023 readahead(2)