C++:هل من الممكن أن تشترك في المؤشر خلال متشعب العمليات ؟

StackOverflow https://stackoverflow.com/questions/650770

  •  19-08-2019
  •  | 
  •  

سؤال

لدي عدد متغير يجب أن تحسب من قبل عدد قليل من العمليات أنا متشعب و تستخدم/قراءة من قبل الأم العملية.

حاولت إنشاء المؤشر الرئيسي() وظيفة الأم عملية العد هذا المؤشر في متشعب الأطفال.التي لا تعمل!كل طفل يبدو انها نسخة خاصة بالرغم من أن العنوان هو نفسه في كل عملية.

ما هي أفضل طريقة للقيام بذلك ؟

هل كانت مفيدة؟

المحلول

وكل طفل يحصل على نسخته من الذاكرة العمليات الأم (على الأقل بمجرد أن trys لتعديل أي شيء). إذا كنت بحاجة إلى تبادل عمليات betweeen وكنت بحاجة الى ان ننظر في الذاكرة المشتركة أو بعض آلية IPC مماثلة.

وراجع للشغل، لماذا جعل هذا ويكي المجتمع - هل يمكن أن يحد من الاستجابات عن طريق القيام بذلك

نصائح أخرى

و2 العمليات لا يمكن مشاركة نفس الذاكرة. صحيح أن عملية تابعة متشعب سوف تتقاسم نفس الذاكرة الأساسية بعد التفرع، ولكن محاولة الكتابة إلى هذا يسبب نظام التشغيل لتخصيص مساحة للكتابة الجديد عنه في مكان آخر.

وانظر إلى شكل آخر من أشكال IPC للاستخدام.

وتجربتي هي أنه إذا كنت ترغب في تبادل المعلومات بين اثنين على الاقل من العمليات، التي تكاد لا ترغب في مشاركة فقط بعض الفراغ * مؤشر إلى الذاكرة. قد ترغب في إلقاء نظرة على

<وأ href = "http://www.boost.org/doc/libs/1_38_0/doc/html/interprocess/some_basic_explanations.html#interprocess.some_basic_explanations.sharing_information" يختلط = "نوفولو noreferrer" عنوان = "دفعة بين العمليات "> زيادة بين العمليات

والتي يمكن أن تعطيك فكرة، وكيفية تبادل البيانات المهيكلة (اقرأ "الطبقات" و "البنيات") بين العمليات.

لا، استخدم IPC أو المواضيع. ويجري تقاسم فقط اصفات ملف (ولكن ليس يسعى المؤشر).

وأنت قد ترغب في التحقق من الذاكرة المشتركة.

المؤشرات هي دائما تقع في نفس العملية. إنها خاصة إلى العملية بالنسبة إلى العملية هو العنوان الأساسي. هناك نوع مختلف من IPC الآليات المتاحة في أي من أنظمة التشغيل.يمكنك أن تختار مراسلات Windows الذاكرة المشتركة ، المقبس, أنابيب الخ.اختيار واحد وفقا للشرط الخاص بك وحجم البيانات.آلية أخرى هي كتابة البيانات في استهداف العملية باستخدام الذاكرة الظاهرية واجهات برمجة التطبيقات المتاحة وإخطار عملية المقابلة مع المؤشر.

وخيار واحد بسيط ولكن شكل محدود من IPC التي من شأنها أن تعمل بشكل جيد لعدد المشتركة هو 'مقطع البيانات المشتركة ". على ويندوز يتم تطبيق هذا باستخدام التوجيه #pragma data_seg.

المقالة على سبيل المثال.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top