मेरे पास अपनी एक परियोजना के साथ एक मुद्दा है।
मैं साझा स्मृति का उपयोग करने के लिए एक अच्छी तरह से प्रलेखित उदाहरण खोजने की कोशिश कर रहा हूं, fork()
लेकिन कोई सफलता नहीं मिली।
मूल रूप से परिदृश्य यह है कि जब उपयोगकर्ता प्रोग्राम शुरू करता है, तो मुझे साझा मेमोरी में दो मान संग्रहीत करने की आवश्यकता होती है: current_path जो एक char * है और एक file_name जो char * भी है ।
कमांड तर्कों के आधार पर, एक नई प्रक्रिया को बंद कर दिया जाता है fork()
और उस प्रक्रिया को साझा की गई मेमोरी में संग्रहीत current_path चर को पढ़ने और संशोधित करने की आवश्यकता होती है, जबकि file_name चर केवल पढ़ा जाता है।
क्या उदाहरण कोड के साथ साझा मेमोरी पर एक अच्छा ट्यूटोरियल है (यदि संभव हो) जो आप मुझे निर्देशित कर सकते हैं?
shmget()
एट अल दोनों पर चर्चा करते हैं । और (उर्फ ) के mmap()
साथ शुद्ध दृष्टिकोण - हालांकि POSIX द्वारा परिभाषित नहीं है। POSIX भी है और साझा मेमोरी ऑब्जेक्ट्स के प्रबंधन के लिए। [… जारी रखा]MAP_ANON
MAP_ANONYMOUS
MAP_ANON
shm_open()
shm_close()
shm_unlink()
), जबकि तंत्र का उपयोग करके mmap()
फ़ाइल की आवश्यकता होती है और MAP_SHARED
बनी रहती है डेटा (और MAP_ANON
दृढ़ता को रोकता है)। विनिर्देशन के Rationale अनुभाग में एक पूर्ण उदाहरण है shm_open()
।