2009-12-03 9 views
6

कमांड लाइन पर "dir" पैरामीटर को पारित करने के बिना mnesia के लिए एक कार्यशील निर्देशिका कैसे निर्दिष्ट करूं?एरलांग: मैनेशिया के लिए एक कार्यशील निर्देशिका निर्दिष्ट करना?

दूसरे शब्दों में, क्या मैं 'मैनेसिया: स्टार्ट()' कहने से पहले मैनेशिया के लिए "काम करने वाली निर्देशिका" निर्दिष्ट कर सकता हूं?

उत्तर

12

application:set_env(mnesia, dir, Dir).

+1

एरलांग वीएम में एक एप्लिकेशन_कंट्रोलर प्रक्रिया शुरू हुई है। 'application_controller: set_env' इस प्रक्रिया में" एपीआई "है। 'application: set_env' एक अधिक अमूर्त कॉल है, जो सिर्फ एप्लिकेशन से संबंधित है। कोई आश्चर्य नहीं कि वर्तमान में यह केवल उस एपीआई में कॉल करता है। – Zed

+1

प्रश्न का उत्तर देने के लिए :), मेरा मानना ​​है कि application_controller सर्वर और मॉड्यूल का अस्तित्व "कार्यान्वयन विवरण" के रूप में माना जाना चाहिए, और इस प्रकार उचित तरीका अनुप्रयोग मॉड्यूल का उपयोग करना है। – Zed

+0

@zed: आपके पिछले बिंदु पर सहमत हुए। – jldupont

2

विधि कॉल अन्य प्रतिक्रियाओं में उल्लेख किया है इसके अलावा यहां आप भी -config पैरामीटर के साथ निर्दिष्ट एक प्रणाली विन्यास फाइल या .app फ़ाइल में निर्दिष्ट कर सकते। अधिक जानकारी के लिए http://erlang.org/doc/design_principles/applications.html#id2270704 देखें। यह आपको कॉन्फ़िगरेशन को कोड से अलग रखने की अनुमति देता है और बहुत कमांड लाइन झंडे से बचता है।

+0

मेरे पास एक समान स्थिति है ... और मैं कोड के अंदर से मैनेशिया डीआईआर सेट नहीं करना चाहता ... क्या आप कृपया आवेदन कर सकते हैं कि एप्लिकेशन के .app फ़ाइल को अन्य एप्लिकेशन के लिए एनवी वैरिएबल सेट करने के लिए इस्तेमाल किया जाना चाहिए। मैं समझता हूं कि यह .config फ़ाइल का उपयोग करके कैसे किया जा सकता है। जैसे मेरी एप्लिकेशन फ़ाइल test.app है और इसमें "अनुप्रयोग" खंड में सूचीबद्ध मैनेशिया था, इसलिए जब मैं "परीक्षण" शुरू करता हूं तो मैनेसिया स्वचालित रूप से प्रारंभ हो जाता है। Test.app का उपयोग करके मैनेशिया में "डीआईआर" मान कैसे पास कर सकता हूं? – spkhaira

+0

इसके लिए प्रासंगिक दस्तावेज यहां है: http://www.erlang.org/doc/man/app.html विशेष रूप से एप्लिकेशन फ़ाइल spec में env tuple। कुछ भी जो आप set_env() के साथ सेट कर सकते हैं, वहां भी या कमांडलाइन पर सेट किया जा सकता है। –