У меня небольшая проблема с одним из моих проектов.
Я пытался найти хорошо документированный пример использования разделяемой памяти, 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().