Saya memiliki sedikit masalah dengan salah satu proyek saya.
Saya telah mencoba untuk menemukan contoh yang terdokumentasi dengan baik tentang penggunaan memori bersama fork()
tetapi tidak berhasil.
Pada dasarnya skenario adalah bahwa ketika pengguna memulai program, saya perlu menyimpan dua nilai dalam memori bersama: current_path yang merupakan char * dan nama_file yang juga char * .
Bergantung pada argumen perintah, proses baru dimulai fork()
dan proses itu perlu membaca dan memodifikasi variabel current_path yang disimpan dalam memori bersama sementara variabel nama_file hanya baca.
Apakah ada tutorial bagus tentang memori bersama dengan kode contoh (jika mungkin) yang dapat Anda arahkan ke saya?
shmget()
dkk. dan juga mmap()
pendekatan murni dengan MAP_ANON
(alias MAP_ANONYMOUS
) - meskipun MAP_ANON
tidak ditentukan oleh POSIX. Ada juga POSIX shm_open()
dan shm_close()
untuk mengelola objek memori bersama. [… Lanjutan…]
shm_unlink()
), sedangkan mekanisme yang menggunakan mmap()
memerlukan file dan MAP_SHARED
untuk bertahan data (dan MAP_ANON
menghalangi ketekunan). Ada contoh lengkap di bagian Rationale dari spesifikasi shm_open()
.