5.3.5. Применения функции mmap()

5.3.5. Применения функции mmap()

Функция mmap() может использоваться не только для организации взаимодействия процессов. Часто она выступает в качестве замены функциям read() и write(). Например, вместо того чтобы непосредственно загружать содержимое файла в память, программа может связать файл с отображаемой памятью и сканировать его путем обращения к памяти. Иногда это удобнее и быстрее, чем выполнять операции файлового ввода-вывода.

Некоторые программы формируют в отображаемом файле структуры данных. При каждом следующем запуске программа повторно инициализирует файл в памяти, вследствие чего восстанавливается начальное состояние структур. В подобной ситуации следует помнить о том, что указатели на структуры будут некорректными, если они не локализованы в пределах одной отображаемой области и если файл не загружается по одному и тому же адресу.

Другой удобный прием — отображение в памяти файла /dev/zero (описывается в разделе 6.5.2, "/dev/zero"). Этот файл ведет себя так, как будто содержит бесконечное число нулевых байтов. Операции записи в него игнорируются. Описываемый прием часто применяется в пользовательских функциях выделения памяти, которым необходимо инициализировать блоки памяти.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг:

Функции mmap() и do_mmap() : создание интервала адресов

Из книги автора

Функции mmap() и do_mmap(): создание интервала адресов Функция do_mmap() используется ядром для создания нового линейного интервала адресов. Говорить, что эта функция создает новую область VMA, — технически не корректно, поскольку если создаваемый интервал адресов является смежным


Системный вызов mmap()

Из книги автора

Системный вызов mmap() Возможности функции do_mmap() экспортируются в пространство пользователя с помощью системного вызова mmap(), который определен следующим образом.void *mmap2(void *start, size_t length, int prot, int flags, int fd, off_t pgoff);Этот системный вызов имеет имя mmap2(), т.е. второй вариант функции


Пример применения мьютекса

Из книги автора

Пример применения мьютекса Модернизируем наш пример из раздела, посвященного использованию семафора для случая множества потоков источников и приемников данных. Проблема заключается в том, что когда несколько потоков одновременно попытаются вызвать функцию push() или


Преимущества применения VoIP

Из книги автора

Преимущества применения VoIP Поскольку VoIP является цифровой технологией, она делает возможными некоторые вещи, которые принципиально были недоступны для аналоговой телефонии прошлых лет. Например, вы можете устроить конференц-связь с несколькими людьми одновременно.


Теорема Тевенина и ее применения

Из книги автора

Теорема Тевенина и ее применения Что представляет собой теорема Тевенина, и почему она так важна и так широко применяется? Если вы рассчитываете нетривиальные цепи и при этом хотите получить результат при различных нагрузочных сопротивлениях, то идеальным методом


12.2. Функции mmap, munmap и msync

Из книги автора

12.2. Функции mmap, munmap и msync Функция mmap отображает в адресное пространство процесса файл или объект разделяемой памяти Posix. Мы используем эту функцию в следующих ситуациях:1. С обычными файлами для обеспечения ввода-вывода через отображение в память (раздел 12.3).2. Со


Области применения. NET

Из книги автора

Области применения. NET Как и было заявлено Microsoft с самого начала обнародования сведений о. NET, этот набор технологий в первую очередь адресован программистам, которые работают с веб-приложениями, и предназначен для создания расширяемых распределенных приложений, которые,


16.3. Область применения

Из книги автора

16.3. Область применения Как один из вариантов грамотного применения перенаправления ввода/вывода, можно назвать разбор и "сшивание" вывода от команд (см. Пример 11-6). Это позволяет создавать файлы отчетов и журналов регистрации


1 Область применения

Из книги автора

1 Область применения Настоящий стандарт применяется для пакетов программ. Например, для текстовых процессоров, электронных таблиц, программ баз данных, графических пакетов, программ, реализующих технические и научные функции, и для сервисных программ (утилит).Стандарт


1 ОБЛАСТЬ ПРИМЕНЕНИЯ

Из книги автора

1 ОБЛАСТЬ ПРИМЕНЕНИЯ Настоящий стандарт определяет шесть характеристик, которые с минимальным дублированием описывают качество программного обеспечения. Данные характеристики образуют основу для дальнейшего уточнения и описания качества программного обеспечения.


1 ОБЛАСТЬ ПРИМЕНЕНИЯ

Из книги автора

1 ОБЛАСТЬ ПРИМЕНЕНИЯ Данный стандарт представляет собой руководство по документированию программного обеспечения для тех руководителей, которые отвечают за производство программного обеспечения или программной продукции. Руководство предназначено для помощи