यूनिक्स/लिनक्स में उपयोगकर्ता कॉन्फ़िगरेशन डेटा रखने के लिए अनुशंसित तरीका क्या है? मेरी प्रोग्रामिंग भाषा सी ++ है। कॉन्फ़िगरेशन डेटा एक्सएमएल/टेक्स्ट/बाइनरी प्रारूप में रखा जाएगा, मुझे ऐसी फाइलों को संभालने में कोई समस्या नहीं है। मैं जानना चाहता हूं कि मैं उन्हें कहां रख सकता हूं। उदाहरण के लिए, विंडोज ओएस कॉन्फ़िगरेशन डेटा में रजिस्ट्री (पुराने तरीके) या उपयोगकर्ता एप्लिकेशन डेटा निर्देशिका में रखा जा सकता है। लिनक्स के बारे में क्या? मुझे कॉन्फ़िगरेशन फ़ाइलों को पढ़ने/लिखने की आवश्यकता है।यूनिक्स/लिनक्स में प्रोग्राम कॉन्फ़िगरेशन डेटा
उत्तर
रजिस्ट्री की अवधारणा Windows के लिए अजीब है, और माइक्रोसॉफ्ट एक बार के लिए यह बीमार कल्पना की जा रही भर्ती कराया (देखें this, this, this, this (see #2), और this)।
यूनिक्स और लिनक्स में, सिस्टम-व्यापी प्रोग्राम के लिए कॉन्फ़िगरेशन/etc या शायद एक एप्लिकेशन-विशिष्ट उपनिर्देशिका है।
प्रति उपयोगकर्ता कॉन्फ़िगरेशन डेटा उपयोगकर्ता की होम निर्देशिका में एक छिपी हुई फ़ाइल-पाठ प्रारूप में या उपयोगकर्ता की होम निर्देशिका में एप्लिकेशन-विशिष्ट छिपी निर्देशिका में रखा जाता है। घर निर्देशिका का संदर्भ देने का उचित तरीका पर्यावरण चर HOME
के माध्यम से है। छिपी हुई फाइलें और निर्देशिकाएं नाम के पहले अक्षर .
बनाकर बनाई गई हैं।
सिस्टम-व्यापी विन्यास के लिए उदाहरण /etc/wgetrc
और /etc/ssh/
है। प्रति उपयोगकर्ता डेटा के उदाहरण $HOME/.bashrc
और $HOME/.mozilla/
हैं।
यह लिनक्स के आपके स्वाद पर थोड़ा सा निर्भर करता है लेकिन एक सामान्य नियम के रूप में अधिकांश प्रोग्रामों में आपके घर निर्देशिका में .config फ़ाइलों के साथ कहीं भी सिस्टम डिफ़ॉल्ट कॉन्फ़िगरेशन होता है जो/etc dir में डिफ़ॉल्ट को ओवरराइड कर सकता है।
महान बिंदु .config होना चाहिए। [कॉन्फ़िग फ़ाइल का नाम]
आप यह स्पष्ट करना चाहते हैं कि ".config" से आप वास्तव में एक फ़ाइल का नाम लेते हैं जिसका नाम "।", * नहीं * एक ".config" एक्सटेंशन वाला फ़ाइल है। "।" उपसर्ग डिफ़ॉल्ट रूप से फ़ाइलों को "छिपा" रखना है। जिन प्रोग्रामों में कॉन्फ़िगरेशन फ़ाइलों का समूह होता है, उनमें कुछ फ़ाइलों के साथ ".config" निर्देशिका होगी। साथ ही, पुराने स्कूल यूनिक्स ऐप्स अपनी कॉन्फ़िगरेशन फ़ाइल/निर्देशिका के लिए "। [Appname] rc" नाम का उपयोग करते हैं। –
XDG बेस निर्देशिका विशिष्टता को निर्दिष्ट करता है जहां विन्यास और अन्य फाइलों Linux और अन्य एक्स-आधारित ऑपरेटिंग सिस्टम में संग्रहित किया जाना चाहिए:
http://freedesktop.org/wiki/Specifications/basedir-spec
इस आधुनिक तरीका है, और अंत में dotfile गंदगी को कम कर सकते ठेठ उपयोगकर्ता की होम निर्देशिका में।
डॉटफाइल क्लासिक यूनिक्स समाधान हैं। यदि आप सबकुछ पढ़ने/लिखने से निपटना चाहते हैं, तो इसके लिए जाएं।
हालांकि, मेरे द्वारा उपयोग किए जाने वाले अधिकांश आधुनिक कार्यक्रमों ने प्राथमिकताओं को संग्रहीत करने के लिए GConf का उपयोग किया है। यह डेवलपर के रूप में और उपयोगकर्ता के रूप में बहुत कुछ चीजें आसान बनाता है (और स्पष्ट रूप से एक व्यवस्थापक के रूप में, लेकिन मुझे वहां कोई अनुभव नहीं है)।
जीकॉनएफ के बारे में अच्छा बिंदु, धन्यवाद। मेरे मामले में, मेरे पास एक्सएमएल कॉन्फ़िगरेशन फ़ाइलों को प्रबंधित करने के लिए क्रॉस-प्लेटफ़ॉर्म कोड है, जो पहले से ही विंडोज़ में चल रहा है। यह पहले से ही किया जा रहा है, मुझे कॉन्फ़िगरेशन फाइल पथ का चयन करने के लिए प्लेटफ़ॉर्म-विशिष्ट कोड जोड़ने की आवश्यकता है। * अन्य * लोकप्रिय डेस्कटॉप की कॉन्फ़िगरेशन योजना के लिए –
http://api.kde.org/4.0-api/kdelibs-apidocs/kdecore/html/classKConfig.html। – ephemient
- 1. अन्य प्रोग्राम की कॉन्फ़िगरेशन फ़ाइलों को खोलें
- 2. कॉन्फ़िगरेशन फ़ाइल को किसी अन्य प्रोग्राम
- 3. लॉन्च कॉन्फ़िगरेशन में निर्दिष्ट प्रोग्राम फ़ाइल मौजूद नहीं है
- 4. सी ++ प्रोग्राम में डेटा एम्बेड करें
- 5. प्रोग्राम और डेटा Prolog में समान हैं?
- 6. कई कॉन्फ़िगरेशन विकल्पों के साथ प्रोग्राम कैसे डिज़ाइन करें?
- 7. क्यूटी/सी ++ - कॉन्फ़िगरेशन डेटा कैसे स्टोर करें
- 8. स्प्रिंग कॉन्फ़िगरेशन द्वारा स्प्रिंग डेटा भंडार स्कैनिंग?
- 9. विभिन्न कॉन्फ़िगरेशन फ़ाइल के साथ निष्पादन योग्य प्रोग्राम कैसे चलाएं?
- 10. पाइथन प्रोग्राम को पाइथन प्रोग्राम
- 11. सिस्टम में कॉन्फ़िगरेशन कॉन्फ़िगरेशन अनुभाग परिणाम सहेजने के लिए System.UnuthorizedAccessException
- 12. एंड्रॉइड ऐप से डेस्कटॉप प्रोग्राम में डेटा अपलोड करना
- 13. प्ले में कॉन्फ़िगरेशन वैरिएबल! फ्रेमवर्क
- 14. संदर्भित असेंबली में कॉन्फ़िगरेशन दोहराएं
- 15. @ कॉन्फ़िगरेशन
- 16. कॉन्फ़िगरेशन फ़ाइलों में पासवर्ड एन्क्रिप्ट करें?
- 17. कॉन्फ़िगरेशन
- 18. कॉन्फ़िगरेशन क्लास
- 19. कॉन्फ़िगरेशन
- 20. प्रोग्राम प्रोग्राम के रूप में माउस प्रोग्राम कैसे उत्पन्न करें?
- 21. app.config में कस्टम कॉन्फ़िगरेशन अनुभाग कैसे बनाएं?
- 22. Matplotlib MPLCONFIGDIR सेट करना: MPLCONFIGDIR को matplotlib कॉन्फ़िगरेशन डेटा
- 23. फ़ाइल और कोड दोनों में हाइबरनेट कॉन्फ़िगरेशन
- 24. कोरडाटा के साथ प्रारंभिक डेटा कॉन्फ़िगरेशन सेटअप कैसे करूँ?
- 25. LAN सेटिंग्स (प्रॉक्सी कॉन्फ़िगरेशन) बदलने के लिए प्रोग्राम के रूप में
- 26. कॉन्फ़िगरेशन मैनेजर
- 27. बहु-थ्रेडेड प्रोग्राम में फोर्क
- 28. grunt.js कॉन्फ़िगरेशन में सामान्य कॉन्फ़िगरेशन विकल्पों के लिए विरासत
- 29. एक प्रोग्राम से दूसरे प्रोग्राम में सिग्नल कैसे भेजना है?
- 30. मैं प्रोग्राम डेटा रूप से एसक्यूएल डेटा-प्रकारों को .NET डेटा-प्रकारों में कैसे परिवर्तित कर सकता हूं?
आपको पर्यावरण परिवर्तनीय होम पर भरोसा नहीं करना चाहिए। चूंकि हम सी ++ से बात कर रहे हैं जो सिस्टम कॉल कर सकता है, आपको 'struct passwd * pw = getpwuid (getuid()) करना चाहिए; '(या' getpwuid_r' अगर आपको थ्रेड सुरक्षा की आवश्यकता है) और फिर 'pw-> के मान का उपयोग करें pw_dir' –
अच्छा सुझाव। मुझे $ HOME का उपयोग करने में कोई समस्या नहीं है। मुझे लगता है कि कई कार्यक्रमों को भी इस तरह से काम करना चाहिए, क्योंकि कभी-कभी मैंने उपयोगी, अपेक्षित परिणामों के साथ घर पर कब्जा कर लिया है। – wallyk
धन्यवाद, मुझे लगता है कि मैं इसका अनुसरण करूंगा।बीटीडब्लू, क्या मैं प्रोग्राम में होम निर्देशिका के लिए "~" का उपयोग कर सकता हूं? –