posix_fadvise(), posix_fadvise64()

Предварительная декларирация шаблона доступа к файлу

Прототип:

#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.


Note: Данная функция использует вызов devctl() с командой DCMD_ALL_FADVISE.

Возвращаемое значение:

EOK
Успешное завершение.
EINVAL
Один или несколько аргументов имеют некорректное значение.

Классификация:

POSIX 1003.1 Advisory Information

Безопасность использования
Точка остановки потока
Да
Обработчик прерываний
Нет
Обработчик сигналов
Да
В потоке
Да

Тематические ссылки:

close(), DCMD_ALL_FADVISE, devctl(), struct _fadvise, open(), open64(), read()




Предыдущий раздел: Описание API системной библиотеки