Кто-нибудь знает, в чем разница между mmap(2)
и mmap(3)
? Раздел «Человек» 3 описывается как «В этой главе описываются все функции библиотеки, исключая библиотечные функции, описанные в главе 2, которые реализуют системные вызовы». Не выполняет mmap(3)
системный вызов?mmap (2) vs mmap (3)
Чтение двух страниц руководства, я вижу, что mmap(2)
, кажется, принимает гораздо более широкое разнообразие флагов, чем mmap(3)
, и утверждает, что может отображать пространства ввода-вывода устройства. mmap(3)
утверждает, что имеет возможность сопоставлять «объекты общей памяти» и «типизированные объекты памяти» в дополнение к файлам, но не упоминает ввода-вывода устройства.
Поскольку две функции имеют одно и то же имя, я даже не уверен, как я могу выбрать один, а не другой.
Спасибо, это было очень ясно. Спасибо также за указатель в исходное дерево библиотеки C. Хотя я выполняю довольно много работы на уровне ядра и драйвера, я редко нахожусь в пространстве пользователя для чего-то другого, кроме тестовых утилит, и я вообще не изучал источник glibc. Я вижу, что у меня отсутствует очень полезный подход к ряду вопросов. – EQvan