Главная » 2017 » Ноябрь » 21 » man 2 mmap2
00:55
man 2 mmap2

SEO sprint - Всё для максимальной раскрутки!





ИМЯ


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



ОБЗОР


#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 байтам.



СМОТРИТЕ ТАКЖЕ


getpagesize(2), mmap(2), mremap(2), msync(2), shm_open(3)



Категория: (2) Системные вызовы ядра (функции языка Си) | Просмотров: 404 | Добавил: Администратор | Рейтинг: 0.0/0
Всего комментариев: 0
avatar