.\" -*- 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 "4 декабря 2022 г." "Linux man\-pages 6.03" .SH ИМЯ readahead \- включает упреждающее чтение файла в кэш страниц .SH LIBRARY Standard C library (\fIlibc\fP, \fI\-lc\fP) .SH СИНТАКСИС .nf \fB#define _GNU_SOURCE\fP /* Смотрите feature_test_macros(7) */ \fB#include \fP .PP \fBssize_t readahead(int \fP\fIfd\fP\fB, off64_t \fP\fIoffset\fP\fB, size_t \fP\fIcount\fP\fB);\fP .fi .SH ОПИСАНИЕ Вызов \fBreadahead\fP() включает упреждающее чтение (initiates readahead) из файла таким образом, что последующие операции чтения этого файла будут брать данные их кэша и не блокировать дисковый ввод\-вывод (предполагается, что упреждающее чтение началось раньше и что другие действия в системе не выбросили страницы из кэша). .PP Аргумент \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 ВЕРСИИ The \fBreadahead\fP() system call appeared in Linux 2.4.13; glibc support has been provided since glibc 2.3. .SH СТАНДАРТЫ Системный вызов \fBreadahead\fP() есть только в Linux, и не должен использоваться в переносимых приложениях. .SH ЗАМЕЧАНИЯ На некоторых 32\-битных архитектурах интерфейс системного вызова отличается от описанного выше, по причинам указанным в \fBsyscall\fP(2). .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 Этот перевод является бесплатной документацией; прочитайте .UR https://www.gnu.org/licenses/gpl-3.0.html Стандартную общественную лицензию GNU версии 3 .UE или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ. .PP Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо на .MT man-pages-ru-talks@lists.sourceforge.net .ME .