MMAP2(2)

ИМЯ
mmap2 - тображает файлы или устройства в память

ОБЗОР
#include <sys/mman.h>
#include <syscall.h>

_syscall6(void *, start, size_t, length, int, prot, int, flags, int, fd, off_t, pgoffset);

void * mmap2(void *start, size_t length, int prot, int flags, int fd, off_t pgoffset);

#endif

ОПИСАНИЕ
Функция mmap2 работает точно также как и mmap(2), за исключением того, что последний аргумент задаёт смещение в файле в единицах размера системной страницы (вместо байт). Это позволяет приложениям использовать 32-бинтое значение off_t для отображения больших файлов (обычно размером больше чем 2^44 байт).

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
В случае успеха, mmap2 возвращает указатель на область отображения. В случае ошибки, возвращается -1 и значение errno устанавливается соответствующим образом.

ОШИБКИ

EFAULT
Проблема с получением данных из пространства пользователя.

ЗАМЕЧАНИЯ
Функция mmap2 доступна начиная с Linux 2.3.31. Она является специфичной для Linux и не должна использоваться в приложениях, которые планируются как переносимые на другие платформы. См. также функцию mmap64(), которая является частью LFS (Large File Summit).

СМОТРИ ТАКЖЕ
getpagesize(2), mmap(2), mremap(2), msync(2), shm_open(2)

ПЕРЕВОД
Перевёл с английского Виктор Вислобоков <corochoone@perm.ru> 2004