Самьюэл Алекс
Шрифт:
Программа
Ниже показан пример запуска обеих программ. Им на вход передается файл
Обратите внимание: значение 42 оказалось записано в файл на диске, хотя функция
5.3.3. Совместный доступ к файлу
Процессы могут взаимодействовать друг с другом через области отображаемой памяти, связанные с одним и тем же файлом. Если в функции
С другой стороны, с помощью функции
■
■
■
Следующая функция обновляет файл, область отображения которого начинается с адреса
Как и в случае совместного использования сегментов памяти, при работе с отображаемыми областями необходимо придерживаться определенного порядка во избежание конкуренции. Например, можно создать семафор, который позволит только одному процессу обращаться к отображаемой памяти в конкретный момент времени. Можно также воспользоваться функцией
5.3.4. Частные отображаемые области
Если в функции
5.3.5. Применения функции mmap
Функция
Некоторые программы формируют в отображаемом файле структуры данных. При каждом следующем запуске программа повторно инициализирует файл в памяти, вследствие чего восстанавливается начальное состояние структур. В подобной ситуации следует помнить о том, что указатели на структуры будут некорректными, если они не локализованы в пределах одной отображаемой области и если файл не загружается по одному и тому же адресу.
Другой удобный прием — отображение в памяти файла