У мене є проблема з одним із моїх проектів.
Я намагався знайти добре задокументований приклад використання спільної пам’яті, fork()але не мав успіху.
В основному сценарій полягає в тому, що коли користувач запускає програму, мені потрібно зберігати два значення в спільній пам'яті: current_path, який є char *, і ім'я файлу, яке також є char * .
Залежно від аргументів команди, починається новий процес, 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().