mmap2 - отображает файлы или устройства в память
mmap2(2)
отображает файлы или устройства в память
ОБЗОР
#include <sys/mman.h>
void *mmap2(void *addr, size_t length, int prot,
int flags, int fd, off_t pgoffset);
ОПИСАНИЕ
Вероятно, вам нужен не сам системный вызов; смотрите
mmap(2), описывающую
обёрточную функцию glibc, которая вызывает данный системный вызов.
Системный вызов mmap2() предоставляет тот же интерфейс что и mmap(2),
за исключением того, что последний аргумент задаёт смещение в файле в
4096-байтовых единицах (вместо байт, как это делается в mmap(2)). Это
позволяет приложениям использовать 32-битное значение off_t для
отображения больших файлов (до 2^44 байт).
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
При удачном завершении
mmap2() возвращает указатель на область
отображения. В случае ошибки возвращается -1, а
errno устанавливается в
соответствующее значение.
ОШИБКИ
EFAULT
Проблема получения данных из пользовательского пространства.
EINVAL
(Различные платформы, где размер страницы не равен 4096 байтам.) Значение
offset * 4096 не кратно размеру страницы системы.
Вызов mmap2() также может вернуть любую ошибку из описанных в mmap(2).
ВЕРСИИ
Вызов
mmap2() доступен начиная с Linux 2.3.31.
СООТВЕТСТВИЕ СТАНДАРТАМ
Данный вызов есть только в Linux.
ЗАМЕЧАНИЯ
На архитектурах, имеющих данный системный вызов, обёрточная функция glibc
mmap() вызывает данный системный вызов вместо системного вызова
mmap(2).
Этот системный вызов отсутствует на x86-64.
На ia64 единица offset на самом деле имеет размер страницы системы, а не
равна 4096 байтам.