Projelerimden biriyle ilgili biraz sorunum var.
Paylaşılan hafızayı kullanmanın iyi belgelenmiş bir örneğini bulmaya çalışıyorum fork()ama başarılı olamadım.
Temel olarak senaryo, kullanıcı programı başlattığında, paylaşılan bellekte iki değer saklamam gerektiğidir: char * olan current_path ve ayrıca char * olan bir dosya_adı .
Komut argümanlarına bağlı olarak, yeni bir işlem başlatılır fork()ve bu işlemin , dosya_adı değişkeni salt okunurken paylaşılan bellekte depolanan current_path değişkenini okuması ve değiştirmesi gerekir .
Örnek kod içeren (mümkünse) beni yönlendirebileceğiniz paylaşılan hafıza hakkında iyi bir öğretici var mı?
shmget()diğerlerini tartışmaktadır . ve ayrıca (aka ) mmap()ile saf yaklaşım - ancak POSIX tarafından tanımlanmamaktadır. Ayrıca POSIX ve paylaşılan bellek nesnelerini yönetmek için de vardır . […MAP_ANONMAP_ANONYMOUSMAP_ANONshm_open()shm_close()
shm_unlink()) devam edebilir, oysa kullanan mekanizmalar mmap()bir dosya gerektirir ve MAP_SHAREDkalıcıdır veriler (ve MAP_ANONkalıcılığı engeller). Şartnamesinin Gerekçe bölümünde tam bir örnek var shm_open().