.\" -*- coding: UTF-8 -*- .\" This manpage is Copyright (C) 2004, Michael Kerrisk .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\" 2004-05-40 Created by Michael Kerrisk .\" 2004-10-05 aeb, minor correction .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH readahead 2 "2 мая 2024 г." "Справочные страницы Linux 6.9.1" .SH ИМЯ readahead \- включает упреждающее чтение файла в кэш страниц .SH БИБЛИОТЕКА Стандартная библиотека языка C (\fIlibc\fP, \fI\-lc\fP) .SH СИНТАКСИС .nf \fB#define _GNU_SOURCE\fP /* See feature_test_macros(7) */ \fB#define _FILE_OFFSET_BITS 64\fP \fB#include \fP .P \fBssize_t readahead(int \fP\fIfd\fP\fB, off_t \fP\fIoffset\fP\fB, size_t \fP\fIcount\fP\fB);\fP .fi .SH ОПИСАНИЕ Вызов \fBreadahead\fP() включает упреждающее чтение (initiates readahead) из файла таким образом, что последующие операции чтения этого файла будут брать данные их кэша и не блокировать дисковый ввод\-вывод (предполагается, что упреждающее чтение началось раньше и что другие действия в системе не выбросили страницы из кэша). .P Аргумент \fIfd\fP — это файловый дескриптор файла для чтения. В аргументе \fIoffset\fP указывает начальная точка, от которой нужно читать данные и в \fIcount\fP задаётся количество читаемых байт. Ввод\-вывод выполняется во все страницы, так что \fIoffset\fP эффективно округляется в меньшую сторону к границе страницы и байты читаются до границы следующей страницы, большей или равной \fI(offset+count)\fP. Вызов \fBreadahead\fP() не выполняет чтения за концом файла. Файловое смещение открытого файлового описания, на который указывает файловый дескриптор \fIfd\fP, остаётся неизменным. .SH "ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ" On success, \fBreadahead\fP() returns 0; on failure, \-1 is returned, with \fIerrno\fP set to indicate the error. .SH ОШИБКИ .TP \fBEBADF\fP \fIfd\fP не является допустимым файловым дескриптором или не открыт на чтение. .TP \fBEINVAL\fP \fIfd\fP указывает на файл с типом, который нельзя использовать в \fBreadahead\fP(). .SH ВЕРСИИ На некоторых 32\-битных архитектурах интерфейс системного вызова отличается от описанного выше, по причинам указанным в \fBsyscall\fP(2). .SH СТАНДАРТЫ Linux. .SH ИСТОРИЯ Linux 2.4.13, glibc 2.3. .SH ПРИМЕЧАНИЯ \fB_FILE_OFFSET_BITS\fP should be defined to be 64 in code that uses a pointer to \fBreadahead\fP, if the code is intended to be portable to traditional 32\-bit x86 and ARM platforms where \fBoff_t\fP's width defaults to 32 bits. .SH ОШИБКИ Вызов \fBreadahead\fP() пытается запланировать чтение в фоновом режиме и сразу завершается. Однако, он может заблокироваться на время чтения метаданных файловой системы, необходимых для обнаружения запрашиваемых блоков. Это часто происходит ext[234] для больших файлов, у которых используются косвенные (indirect) блоки вместо непрерывных (extents), что приводит к блокировке вызова на время прочтения нужных данных. .SH "СМОТРИТЕ ТАКЖЕ" \fBlseek\fP(2), \fBmadvise\fP(2), \fBmmap\fP(2), \fBposix_fadvise\fP(2), \fBread\fP(2) .PP .SH ПЕРЕВОД Русский перевод этой страницы руководства разработал(и) aereiae , Azamat Hackimov , Dmitriy S. Seregin , Katrin Kutepova , Lockal , Yuri Kozlov , Баринов Владимир и Иван Павлов . .PP Этот перевод является свободной программной документацией; он распространяется на условиях общедоступной лицензии GNU (GNU General Public License - GPL, .UR https://www.gnu.org/licenses/gpl-3.0.html .UE версии 3 или более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ. .PP Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом разработчику(ам) по его(их) адресу(ам) электронной почты или по адресу .MT списка рассылки русских переводчиков .ME .