У меня небольшая проблема с одним из моих проектов.
Я пытался найти хорошо документированный пример использования разделяемой памяти, fork()
но безуспешно.
В основном сценарий таков, что когда пользователь запускает программу, мне нужно сохранить два значения в общей памяти: current_path, который является символом *, и имя_файла, которое также является символом * .
В зависимости от аргументов команды запускается новый процесс, fork()
и этот процесс должен прочитать и изменить переменную current_path, хранящуюся в общей памяти, в то время как переменная file_name доступна только для чтения.
Есть ли хороший учебник по общей памяти с примером кода (если возможно), к которому вы могли бы направить меня?
shmget()
и др. а также чистый mmap()
подход с MAP_ANON
(aka MAP_ANONYMOUS
) - хотя MAP_ANON
и не определен в POSIX. Также есть POSIX shm_open()
и shm_close()
для управления объектами разделяемой памяти. [… Продолжение…]
shm_unlink()
), тогда как механизмы, использующие, mmap()
требуют файл и MAP_SHARED
сохраняются данные (и MAP_ANON
исключает постоянство). Полный пример приведен в разделе «Обоснование» спецификации shm_open()
.