ОБЗОР
#define _GNU_SOURCE /* Смотрите feature_test_macros(7) */
#include <fcntl.h>
ssize_t readahead(int fd, off64_t offset, size_t count);
ОПИСАНИЕ
Вызов readahead() включает упреждающее чтение (initiates readahead) из файла таким образом, что последующие операции чтения этого файла будут брать данные их кэша и не блокировать дисковый ввод-вывод (предполагается, что упреждающее чтение началось раньше и что другие действия в системе не выбросили страницы из кэша).Аргумент fd — это файловый дескриптор файла для чтения. В аргументе offset указывает начальная точка, от которой нужно читать данные и в count задаётся количество читаемых байт. Ввод-вывод выполняется во все страницы, так что offset эффективно округляется в меньшую сторону к границе страницы и байты читаются до границы следующей страницы, большей или равной (offset+count). readahead() не выполняет чтения за концом файла. Текущее файловое смещение открытого файла, на который указывает fd, остаётся неизменным.
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
При успешном выполнении readahead() возвращает 0. В случае ошибки возвращается -1, а errno устанавливается в соответствующее значение.ОШИБКИ
- EBADF
- fd не является допустимым файловым дескриптором или не открыт на чтение.
- EINVAL
- fd указывает на файл с типом, который нельзя использовать в readahead().