2010-02-12 5 views
16

मान लें कि मेरे पास एक साधारण कॉन्फ़िगरेशन फ़ाइल है जो मेरे सी प्रोग्राम को पढ़ने/विश्लेषण करने की आवश्यकता है।लिनक्स के तहत एक साधारण कॉन्फ़िगरेशन फ़ाइल को पार्स करने के लिए मुझे क्या सी lib उपयोग करना है?

चलो कहते हैं कि ऐसा लगता है कि इस तरह से एक छोटा सा करते हैं:

#Some comment 
key1=data1 
key2=data2 

एक मानक सी lib कि मैं अपने ही पार्सर लिखने की बजाय का उपयोग कर सकते है?

धन्यवाद जोहान


नोट: आज मैं अपने खुद के छोटे से पार्सर है, लेकिन वहाँ कुछ मानक libs कि इस सरल समस्या का हल किया जाना चाहिए।

+0

इसी तरह का प्रश्न: http://stackoverflow.com/questions/1417765/parse-config-file-in-c-c। कोई मानक सी पुस्तकालय नहीं है जो यह करता है। यदि आपकी आवश्यकताएं सरल और बदलने की संभावना नहीं है तो अपना खुद का पार्सर लिखना बुरा विचार नहीं हो सकता है। –

+0

हालांकि यह ठीक नहीं है कि ओपी क्या मांग रहा है लेकिन एफडब्ल्यूआईडब्लू, कभी-कभी 'सरल' 'sed'/'awk'' सिस्टम-सिस्टम का उपयोग करके एक-लाइनर का उपयोग किया जाता है, जो बहुत आसान हो सकता है। – Zaxter

उत्तर

7

libconfig लेकिन यह क्या आप

+0

थोड़ा सा ओवरकिल, लेकिन मुझे यह पसंद है। – Johan

1

http://code.jellycan.com/simpleini/

पूछ रहे हैं आप सरल INI फ़ाइलों का उपयोग कर सकते की तुलना में काफी अधिक है।

6

क्यों न केवल जीएलआईबी का उपयोग करें?

अनगिनत अन्य बातों के अलावा

यह विन्यास फाइल की तरह INI पार्स करने के लिए पुस्तकालय कार्य हैं:

http://library.gnome.org/devel/glib/2.22/glib-Key-value-file-parser.html

अलावा यह भी डेटाटाइप (सूचियाँ, hashtables, तार, कैश), थ्रेडिंग, मंच तटस्थ कपोल-कल्पना का समर्थन करता है कि , यूनिट परीक्षण, त्रुटि प्रबंधन और कई अन्य महान सामान।

मेरे लिए यह सबसे उपयोगी सी लाइब्रेरी है और मुझे इस पुस्तकालय का उपयोग किए बिना सी प्रोग्राम लिखने का बहुत अच्छा कारण होना चाहिए।

+0

लिंक टूटा हुआ है। – gsingh2011

+1

यह लिंक काम करता है (अभी के लिए ...): [कुंजी-मूल्य फ़ाइल पार्सर] (https://developer.gnome.org/glib/2.28/glib-Key-value-file-parser.html) –

6

मैं इसे यहाँ उल्लेख libConfuse लायक मिल जाए, और इसके विवरण बोली:

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

libConfuse का लक्ष्य कॉन्फ़िगरेशन फ़ाइल पार्सर लाइब्रेरी नहीं है जो सुविधाओं की एक गैजिलियन है। इसके बजाए, इसका उपयोग करना आसान है और अपने कोड के साथ एकीकृत करने के लिए त्वरित होना है। libConfuse पहले libcfg कहा जाता था, लेकिन इसका नाम अन्य समान पुस्तकालयों के साथ खुद को भ्रमित करने के लिए बदला गया था।

यह पहले से ही उल्लेख किए गए libconfig के समान लगता है। A study of the existing libraries to read from configuration files में एक छोटी तुलना है जो विकल्पों में से किसी एक को चुनने के लिए उपयोगी शुरुआत हो सकती है।

https://github.com/taneryilmaz/libconfigini

उपयोग के लिए परीक्षण निर्देशिका देखें:

2

मैं एक साधारण सी पुस्तकालय जो विन्यास फाइल को पार्स करता है लागू किया है।

+0

बहुत साफ कार्यान्वयन । स्वच्छ और सरल। धन्यवाद! – RootRaven

4

यदि आपको वास्तव में छोटे और सरल आईएनआई पार्सर (रूटर जैसे एम्बेडेड सिस्टम के लिए बहुत अच्छा) की आवश्यकता है, तो INIH आज़माएं। यह कोड के केवल 2-3 पेज हैं।

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