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_ANON
MAP_ANONYMOUS
MAP_ANON
shm_open()
shm_close()
shm_unlink()
) devam edebilir, oysa kullanan mekanizmalar mmap()
bir dosya gerektirir ve MAP_SHARED
kalıcıdır veriler (ve MAP_ANON
kalıcılığı engeller). Şartnamesinin Gerekçe bölümünde tam bir örnek var shm_open()
.