2010-06-10 21 views
11

मुझे आईपीसी करने के लिए पोर्टेबल सी ++ लाइब्रेरी चाहिए। मैंने फोर्क() और एसआईएसवी ने अब तक स्मृति साझा की लेकिन यह मुझे लिनक्स/यूनिक्स तक सीमित कर देता है। मुझे पता चला कि 3 प्रमुख सी ++ पुस्तकालय हैं जो एक पोर्टेबल समाधान (विंडोज और मैक ओएस एक्स सहित) प्रदान करते हैं। मुझे वास्तव में बूस्ट पसंद है, और इसका उपयोग करना चाहते हैं लेकिन मुझे प्रक्रियाओं की आवश्यकता है और ऐसा लगता है कि यह अब तक केवल एक प्रयोगात्मक शाखा है !? मैंने कभी एसीई या पीओसीओ के बारे में कभी नहीं सुना है और इस प्रकार मैं अटक गया हूं, मुझे नहीं पता कि कौन सा चयन करना है। मुझे कांटा की जरूरत है(), नींद() (नींद() बहुत अच्छा होगा) और पाठ्यक्रम की साझा स्मृति। प्रदर्शन और दस्तावेज भी महत्वपूर्ण मानदंड हैं।पोर्टेबल सी ++ लाइब्रेरी आईपीसी (प्रक्रियाओं और साझा स्मृति) के लिए, बूस्ट बनाम एसीई बनाम पोको?

धन्यवाद, आपकी मदद के लिए!

उत्तर

7

बूस्ट इंटरप्रोसेस बूस्ट 1.35 के आसपास रहा है (जो मेमोरी परोसने पर 3 साल पहले की तरह होना चाहिए)।

एसीई लंबे समय से रहा है, लेकिन चीजों की आवाज़ से, यह शायद अधिक है - एसीई बड़ी लाइब्रेरी है, और आप केवल इसमें शामिल होने के बारे में एक छोटा सा हिस्सा चाहते हैं। यह एक बड़ी समस्या नहीं है, लेकिन यह ध्यान में रखना कुछ है। विशेष रूप से, एक लाइब्रेरी जो वास्तव में बड़ी परियोजनाओं के लिए डिज़ाइन की गई है, छोटे-छोटे लोगों के लिए थोड़ी सी बेकार लगती है (या हो सकती है)। एसीई मुख्य रूप से नेटवर्क विकास के लिए भी लक्षित है, आईपीसी के साथ शामिल है क्योंकि (उदाहरण के लिए) आप कई सहकारी प्रक्रियाओं में से एक सर्वर होने के लिए प्रतीत होता है, और यदि ऐसा है तो आपको स्पष्ट रूप से उन सहयोगी प्रक्रियाओं को बनाने के लिए एक तरीका चाहिए ।

पीओसीओ एसीई की तरह बहुत अधिक है - यह मूल रूप से एक नेटवर्क लाइब्रेरी है जिसमें कुछ आईपीसी क्षमता शामिल होती है। फिर, आप एक बहुत बड़ी, अधिक महत्वाकांक्षी पुस्तकालय के एक बहुत छोटे हिस्से का उपयोग कर देख रहे हैं।

आप जो चाहते हैं उसके आधार पर, शायद मैं बूस्ट का उपयोग करूंगा - ऐसा लगता है कि आप जो चाहते हैं उसके लिए यह सबसे नज़दीकी फिट है। पीओसीओ शायद मेरी दूसरी पसंद होगी। यद्यपि यह बूस्ट से अलग है, ऐसा लगता है कि यह काफी हद तक समान डिजाइन दर्शन का पालन करता है - विशेष रूप से यह मानक पुस्तकालय के साथ एकीकृत करने के लिए है, जहां एसीई अधिक सर्वव्यापी होता है।

+0

"सर्वव्यापी" इसे विनम्रतापूर्वक डाल रहा है। –

+1

धन्यवाद, मैं बूस्ट का उपयोग तब करूंगा। – Linoliumz

+0

वाकी: आपका मतलब है कि आप Boost.Process क्लास का उपयोग करेंगे जो अभी तक बूस्ट में नहीं है? यह अभी भी इनक्यूबेटर में है, लेकिन यह पहले से ही अच्छा हो सकता है। आपका अनुभव क्या है? – Pietro

1

मुझे Apache portable runtime जोड़ना पसंद है। यह वास्तव में सी ++ नहीं है लेकिन निश्चित रूप से आप इसका उपयोग कर सकते हैं। शीर्षलेखों में भी "बाहरी" सी "" शामिल है।

शामिल है:

  • साझा मेमोरी
  • नेटवर्क कनेक्शन
  • सिग्नल
  • Mutexes
  • कई अन्य चीजें।

बढ़ावा देने की समस्या यह है कि इसमें सी ++ कंपाइलर के लिए मजबूत आवश्यकताएं हैं। विशेष रूप से क्रॉस कंपाइलर्स को समस्या है उदा। मजबूत टेम्पलेट उपयोग, ताकि एक सादा सी पुस्तकालय "अधिक पोर्टेबल" हो।

+0

मैं सभी के लिए बात नहीं कर सकता, लेकिन व्यक्तिगत रूप से मुझे विजुअल स्टूडियो पर एपीआर बनाने में और परेशानी हुई है, क्योंकि मुझे बूस्ट को किसी भी मंच पर बनाने के लिए मिल रहा है। –

+0

यह चाल मेरे लिए WIN32 – schoetbi

+0

परिभाषित करने के लिए थी, क्योंकि मैंने एपीआर बनाया है, हालांकि हम विजुअल स्टूडियो 2010 में अपग्रेड कर रहे हैं, इसलिए मैं इसे फिर से करूँगा।मुझे लगता है कि विजुअल सी ++ 6 प्रोजेक्ट फाइलों को अपग्रेड करना याद है, एक पूर्व-कॉन्फ़िगरेशन config.h फ़ाइल प्राप्त करने की आवश्यकता है, और संभवतः एक या दो अन्य चीजें कर रही हैं। –

संबंधित मुद्दे