2009-05-20 11 views
23

क्या आप सी (शुद्ध सी, सी ++ नहीं) के लिए एक सामान्य सामान्य उद्देश्य डेटा कंटेनर लाइब्रेरी की अनुशंसा कर सकते हैं? मुझे केवल बुनियादी संरचनाओं की आवश्यकता है, जैसे गतिशील सरणी, हैश टेबल, आदिएक सामान्य उद्देश्य पुस्तकालय की आवश्यकता है, शुद्ध सी

(नोट: "अच्छा" से मेरा मतलब तेज़ + सुरुचिपूर्ण इंटरफ़ेस है)।

+1

मुझे एहसास है कि यह एक (काफी) डुप्लिकेट प्रश्न है: SO खोज उपकरण में पहली पंक्ति: http://stackoverflow.com/questions/2540/good-stl-like-library-for-c, और वहां बहुत कुछ है , बस "[सी] ग्लिब लाइब्रेरी" –

+3

ज़िफ़्रे - नहीं, यह एक समाधान नहीं है (मेरे लिए)। मैं लगभग 20 वर्षों के लिए सी ++ प्रोग्रामिंग कर रहा हूं, इसलिए मुझे नहीं लगता कि मुझे उपलब्ध सी ++ libs पर कोई सलाह चाहिए। यहां मुझे दिलचस्पी थी कि शुद्ध सी भूमि में क्या हो रहा है। और मैं जवाब से बहुत संतुष्ट हूं, सभी को धन्यवाद!विशेष रूप से "सी इंटरफेस और कार्यान्वयन" - यह एक मणि की तरह दिखता है। इस बिंदु पर –

+0

मैं बस सोच रहा हूं कि सी स्टडी कॉमेटे ने कभी भी एक आम और व्यापक रूप से उपयोग की जाने वाली लाइब्रेरी के लिए मानकीकरण प्रदान नहीं किया। ग्लिब का उपयोग AFAIK का काफी उपयोग किया जाता है? उदाहरण के लिए सी ++ कमेटी मानक में एसटीएल लाती है ... अच्छा, क्या यह एसओ के लिए एक अच्छा सवाल है? : पी –

उत्तर

14

मुझे लगता है कि डेव हैंनसन का C Interfaces and Implementations तेज और सुरुचिपूर्ण दोनों के रूप में योग्यता प्राप्त करता है। इसमें कई अलग-अलग प्रकार के कंटेनर, कुछ स्ट्रिंग प्रोसेसिंग, मल्टीप्रसिजन अंकगणित, अपवाद, दो अलग-अलग मेमोरी मैनेजर शामिल हैं। अच्छी सामग्री।

एक पुस्तक है, लेकिन आपको सॉफ्टवेयर का उपयोग करने के लिए इसे खरीदने की आवश्यकता नहीं है।

14

अपाचे पोर्टेबल रनटाइम

http://apr.apache.org/

इन क्षेत्रों के लिए मॉड्यूल शामिल है।

  • मंच परिभाषाएँ
  • आंतरिक मेमोरी आवंटन
  • परमाणु संचालन
  • गतिशील वस्तु पर्यावरण
  • त्रुटि कोड
  • फ़ाइल जानकारी
  • फ़ाइल जोड़ तोड़ के लिए हैंडलिंग
  • कार्य आई/ओ हैंडलिंग फ़ंक्शंस
  • फ़ाइल का नाम मिलान कार्य
  • विविध पुस्तकालय दिनचर्या
  • कमान तर्क पार्स
  • वैश्विक ताला लगा दिनचर्या
  • हैश टेबल्स
  • सामान्य प्रयोजन पुस्तकालय दिनचर्या
  • mmap (मेमोरी मानचित्र) दिनचर्या
  • नेटवर्क दिनचर्या
  • पोल रूटीन
  • मेमोरी पूल कार्य
  • पोर्टेबिलिटी दिनचर्या
  • प्रक्रिया लॉकिंग दिनचर्या
  • रैंडम कार्य
  • अंगूठी मैक्रो क्रियान्वयन
  • साझा मेमोरी दिनचर्या
  • सिग्नल हैंडलिंग
  • स्ट्रिंग दिनचर्या
  • आंतरिक अप्रैल सहायता कार्यों
  • तालिका और ऐरे कार्य
  • स्थिति चर दिनचर्या
  • थ्रेड Mutex दिनचर्या
  • धागे और प्रक्रिया कार्य
  • रीडर/लेखक लॉक दिनचर्या
  • समय दिनचर्या
  • उपयोगकर्ता और समूह आईडी सेवाएं
15

आपकी आवश्यकताओं के लिए ग्लिब पर्याप्त नहीं है?:-) developer.gnome.org/glib

+2

यह लिंक पुराना है। यहां एक अद्यतन है: http://developer.gnome.org/glib/ – Jamer

+0

@ जैमर thnx। मैं पोस्ट को बाहर लिंक के साथ अद्यतन करता हूं। –

5

तुम भी iMatix SFL की जाँच करने के लिए, उनके वेबपेज उद्धृत करने के लिए चाहते हो सकता है:

SFL (मानक समारोह लाइब्रेरी) iMatix से C/C++ प्रोग्राम के लिए एक पोर्टेबल समारोह पुस्तकालय है । एसएफएल कई वर्षों के विकास, का परिणाम है और इंटरनेट समुदाय के लाभ के लिए ओपन सोर्स सॉफ्टवेयर के रूप में प्रदान किया जाता है। एसएफएल एएनएसआई सी में लिखा गया है और इसे एमएस-डॉस, विंडोज़, ओएस/2, लिनक्स और अन्य यूनिक्स सिस्टम (आईबीएम एईक्स, सनोस, एचपी/यूएक्स, सोलारिस, नेटबीएसडी, फ्रीबीएसडी, एससीओ ओपनसेवर,> डिजिटल यूनिक्स) और डिजिटल ओपनवीएमएस। यह पूर्ण स्रोतों और HTML में दस्तावेज़ों के साथ आता है।

SFL के बारे में 450 कार्यों है कि इन क्षेत्रों को कवर प्रदान करता है:

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

SFL मुफ्त सॉफ्टवेयर है कि आप का उपयोग करें और SFL License Agreement के अनुसार निजी या व्यावसायिक प्रयोजनों के लिए वितरित कर सकते हैं है।

एपीआई के बारे में अधिक जानकारी, here देखें।

4

Sglib "सी के लिए एक सामान्य पुस्तकालय है कि सी से मानक टेम्पलेट लायब्रेरी ++ से प्रेरित था कि"

7

मैं पहले MemSL की सिफारिश की है, लेकिन वेबसाइट और कंपनी विलुप्त चले गए हैं करने लगते हैं। अब मैं glib का सुझाव दूंगा, इसमें एक ही कार्यक्षमता शामिल है और व्यापक रूप से समर्थित है और पूरे लिनक्स समुदाय में इसका उपयोग किया जाता है।

मैंने x86 कर्नेल को कार्यान्वित करते समय मेमएसएल का उपयोग किया, और मैंने इसे सामान्य, भरोसेमंद और बग मुक्त पाया।

वर्णन से: सी मेमोरी संरचनाएं लाइब्रेरी (MemSL) का अवलोकन

मेमोरी संरचनाएं लाइब्रेरी, छोटे के लिए MemSL, सी में जटिल डेटा संरचनाओं के कुशल उपयोग की इजाजत दी उपयोगी दिनचर्या का एक पुस्तकालय है MemSL के प्रबंधन के लिए दिनचर्या में शामिल है:

  • बहु-आयामी गतिशील रूप से आवंटित सरणी
  • एकल लिंक्ड सूचियाँ
  • डबल लिंक्ड सूचियाँ
  • परिपत्र लिंक्ड सूचियाँ
  • कट, लिंक्ड सूचियों में कॉपी और लिंक्ड सूचियों के साथ पेस्ट करें
  • एकाधिक स्थितीय प्वाइंटर
  • ढेर
  • कतार
  • Dequeues
  • सेट
  • बैग
  • टेबल्स
  • शब्दकोश
  • अलग गतिशील पेजिंग
  • द्विआधारी खोज पेड़
  • पिरोया द्विआधारी खोज पेड़
  • AVL संतुलित बाइनरी खोजें पेड़
  • AVL साथ उपयोगकर्ता निर्धारित पेजिंग
  • हैश तालिकाओं के साथ
  • हैश टेबल्स श्रृंखलन के साथ हैश टेबल्स संतुलित थ्रेड बाइनरी खोज पेड़
  • प्राथमिकता ढेर
  • पूरी तरह से गतिशील प्राथमिकता खोज कतार
+0

एमएमएसएल लिंक काम नहीं करता है (फिलहाल, 2012-06-08)। ऐसा लगता है कि इस लिंक में आजकल एमएमएसएल है: http://www.memorystructures.com/। डाउनलोड लिंक http://sourceforge.net/projects/memsl2/(अंतिम अपडेट 2009-11-12 के साथ जाता है)। – FooF

+0

मैंने लिंक अपडेट किया है, इसे फिर से काम करना चाहिए। –

+0

नया लिंक मर चुका है! – easytiger

2

आप qLibc को देख में रुचि हो सकता है।

http://en.wikipedia.org/wiki/Qlibc http://www.qdecoder.org/qlibc/

यह एक सामान्य प्रयोजन पूरा C/C++ पुस्तकालय जो कंटेनर और सामान्य पुस्तकालय दिनचर्या के सभी प्रकार में शामिल हैं है।

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