Предварительная декларирация шаблона доступа к файлу
#include <fcntl.h>
int posix_fadvise( int fd,
off_t offset,
off_t len,
int advice );
int posix_fadvise64( int fd,
off64_t offset,
off64_t len,
int advice );
- fd
- Файловый дескриптор, к которому необходимо применить декларацию.
- offset
- Смещение в файле (определяет не обязательно уже существующий фрагмент файла).
- len
- Длина фрагмента файла в байтах (определяет не обязательно уже существующий фрагмент файла).
- advice
- Шаблон доступа к файлу. Допустимые значения:
- POSIX_FADV_NORMAL
- Приложение не имеет предпочтений о шаблоне доступа к указанным данным (декларация по умолчанию).
- POSIX_FADV_SEQUENTIAL
- Приложение ожидает последовательный доступ к указанным данным (более ранние адреса считываются строго раньше более старших).
- POSIX_FADV_RANDOM
- Работа с указанными данными будет осуществляться в случайном порядке.
- POSIX_FADV_WILLNEED
- Указанные данные будут запрошены в краткосрочной перспективе.
- POSIX_FADV_DONTNEED
- Указанные данные не будут запрошены в краткосрочной перспективе.
- POSIX_FADV_NOREUSE
- Указанные данные будут запрошены единожды.
libc
Функция posix_fadvise() (или posix_fadvise64()) может использоваться для декларирования способа доступ к некоторой порции данных в обозримом будущем, определяемых файловым дескриптором fd, смещением в нём offset и длиной фрагмента в len байт. Это позволяет дисковой подсистеме выполнять некоторые превентивные операции по оптимизации доступа к данным.
Данные функции не устанавливают errno.
- EOK
- Успешное завершение.
- EINVAL
- Один или несколько аргументов имеют некорректное значение.
POSIX 1003.1 Advisory Information
- Да
- Обработчик прерываний
- Нет
- Обработчик сигналов
- Да
- В потоке
- Да
close(), DCMD_ALL_FADVISE, devctl(), struct _fadvise, open(), open64(), read()
Предыдущий раздел: Описание API системной библиотеки