2008-11-17 24 views
19

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

मैं GLib और APR पर विचार कर रहा हूं। आपका व्यावहारिक अनुभव क्या है? बेहतर नींव सी पुस्तकालय कौन सा है? क्या कोई अन्य पुस्तकालय एक ही जगह भर रहा है?

उत्तर

12

मुझे लगता है कि ग्लिब आमतौर पर apr से बेहतर है। ग्लिब में पोर्टेबल पुस्तकालयों के रूप में कई और डेटास्ट्रक्चर हैं। उदाहरण हैश टेबल, सभी प्रकार की सूचियां, कतार, ढेर, गतिशील सरणी, तर्क पार्सिंग के लिए भी, फ़ाइल आईओ में इसका स्वयं का रैपर भी है और मेमोरी मैनेजमेंट आसान संशोधित है। उदा। आप बोहेम वीज़र जीसी का आसानी से ग्लिब का उपयोग कर सकते हैं यह AFAIKT कभी नहीं किया गया है या अपाचे के साथ आसान संभव है। मैं थोड़ा अलग फैसला करता हूँ। यदि आपको डेटा संरचनाओं की एक और उपयोगी लाइब्रेरी की आवश्यकता है तो ग्लिब बेहतर सुसज्जित है। यदि libapr की तुलना में जीयूआई सामान की बात आती है तो इसमें कुछ भी नहीं है जबकि ग्लिब में gdk/gtk + है और यदि आप चाहें तो gnome के लिए बहुत सारी चीज़ें हैं।

हालांकि, अगर यह नेटवर्क सामान की बात आती है, तो libapr निश्चित रूप से ग्लिब पर बढ़त है। उपयोग जीटीके + और फिसलनदार:

तो मेरी सुझाव

  • डेस्कटॉप प्रोग्रामिंग है।
  • नेटवर्क सामग्री: apr का उपयोग करें, लेकिन आश्वस्त रहें कि ग्लिब में यह सभी पोर्टेबल सामान भी है।
7

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

+1

अब तक ग्लिब में जीओओ शामिल है जो एक धारा उन्मुख आर्किटेक्चर के साथ पोर्टेबल I/O है। मुझे नहीं लगता कि एपीआर ग्लिब से बड़ा है। – lethalman

+2

तो, आज कैसा है? कौन सा बड़ा है? और क्या यह उत्तर अभी भी मान्य है? – einpoklum

+0

libapr सामान glib/gtk सामग्री से बहुत कम है। इसके बारे में कोई संदेह नहीं है .. – Friedrich

1

क्या कोई कारण है कि आप C++ stl का उपयोग नहीं करना चाहते हैं? यहां तक ​​कि यदि आप कक्षाओं के बिना "सी-स्टाइल" कोड लिख रहे हैं, तो आप सी ++ स्ट्रिंग्स और डेटा स्ट्रक्चर का उपयोग कर सकते हैं।

निश्चित रूप से सी से चिपकने के कई वैध कारण हैं। यदि ऐसा है, तो मैं glib के लिए सिफारिश दूसरी होगी। उपयोगिता पुस्तकालय की तुलना में एपीआर पोर्टेबिलिटी परत से अधिक है।

+1

सी ++ तारों की बात करते हुए, मैं आपको यह लिखने की सलाह दूंगा कि लिनस के बारे में क्या कहना है: http://thread.gmane.org/gmane.comp.version-control.git/57918 –

+1

हाँ, मैं सहमत हूं कि लिनस ने गिट के लिए सीधे सी का उपयोग करने का सही विकल्प बनाया है। अपनी परियोजना और लक्ष्य डेवलपर दर्शकों के लिए जो कुछ भी उचित है उसका उपयोग करें। सी ++ स्ट्रिंग्स विशेष रूप से पोस्टर की तरह एक "शौक" प्रोग्रामर के लिए अच्छा है, क्योंकि आपको स्वामित्व को ट्रैक करने और उन्हें मुक्त करने के बारे में पता लगाने की आवश्यकता नहीं है() उन्हें, और ऑटो-बढ़ती यह बनाता है ताकि आप ऐसा न करें मुश्किल स्ट्रैट मामलों के बारे में चिंता करने की ज़रूरत है। बेशक, जैसा कि मैंने कहा था, "सी से चिपकने के बहुत सारे वैध कारण हैं ..."। उपयोग करें जो आपके लिए काम करता है। – joeld

+1

प्रश्न विशेष रूप से सी में कोडिंग के बारे में था, इसलिए सी ++ एसटीएल प्रासंगिक नहीं है। (हाँ मुझे पता है कि यह टिप्पणी तथ्य के 5 साल बाद है। लड़का, ये प्रश्न और निश्चित रूप से आखिरी है, है ना?) – einpoklum

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