2013-01-07 45 views

उत्तर

19

क्यूटी के पास getenv() के आसपास एक रैपर है, जिसे qgetenv() कहा जाता है।

QByteArray qgetenv (const char * varName) 

getenv() एक मानक समारोह है, लेकिन दृश्य स्टूडियो जिसके कारण क्यूटी qgetenv() आवरण प्रदान करता है यह त्याग दिया है।

ध्यान दें कि यदि आप मानक फाइल सिस्टम स्थानों (जैसे होम निर्देशिका, एप्लिकेशन डेटा निर्देशिका इत्यादि) प्राप्त करने में रुचि रखते हैं तो आपको QDesktopServices::storageLocation() (क्यूटी 4) या QStandardPaths::writableLocation() (क्यूटी 5) का उपयोग करना चाहिए।

+0

क्या यह ऐसा फ़ंक्शन है जो किसी भी पर्यावरण चर का विस्तार करता है, जैसे% PATH%, आदि? उदाहरण के लिए, एक कस्टम वातावरण चर जो मैंने अपनी प्रक्रिया का आह्वान करने से पहले कमांड लाइन से सेट किया है? – sashoalm

+1

@ सैटून नंबर। यह आपको मानक स्थान जैसे उपयोगकर्ता की होम निर्देशिका और एप्लिकेशन डेटा निर्देशिका प्राप्त करता है। और दूसरे। कस्टम पर्यावरण चर निश्चित रूप से getenv() के साथ लाने की आवश्यकता होगी। क्यूटी अमूर्त getenv() नहीं है, क्योंकि यह एक मानक फ़ंक्शन सभी मानक C++ कंपाइलर्स पर उपलब्ध है। –

+0

असल में, qgetenv है: http://doc.qt.digia.com/qt/qtglobal.html#qgetenv क्योंकि: "qgetenv() को पेश किया गया था क्योंकि मानक सी लाइब्रेरी से getenv() को VC2005 (और बाद के संस्करणों में बहिष्कृत किया गया था)) qgetenv() वीसी में नए प्रतिस्थापन समारोह का उपयोग करता है, और अन्य सभी प्लेटफार्मों पर मानक सी लाइब्रेरी के कार्यान्वयन को कॉल करता है। " –

6

क्यूटी के लिए, पर्यावरण चरों तक पहुंचने पर "उच्च स्तरीय" दृष्टिकोण भी है। यह केवल तभी काम करता है, यदि आपका क्यूटी एप्लिकेशन QCoreAplication के भीतर चलता है, जो कि अधिकांश क्यूटी अनुप्रयोगों के मामले में होना चाहिए।

उस स्थिति में, आप कम से कम 4.6 के क्यूटी संस्करणों के लिए QProcessEnvironment का उपयोग कर सकते हैं। आप

QProcessEnvironment::systemEnvironment(); 

का उपयोग करके मौजूदा प्रक्रिया वातावरण का उपयोग कर सकते हैं और आप के माध्यम से

QProcessEnvironment::systemEnvironment().value("<variablename>", "<defaultvalue>"); 

किसी भी चर क्वेरी कर सकता है यह और अधिक सुविधाजनक है कि ज्यादातर मामलों में getenv/qgetenv दृष्टिकोण का उपयोग कर इस ऑपरेटिंग छाया के रूप में होना चाहिए - अधिक सामान्य तरीके से सिस्टम कार्यान्वयन और आईएमएचओ यह एक और "क्यूटी-समान" दृष्टिकोण भी है।

+0

इसके अलावा,' getenv' के विपरीत यह यूनिकोड वर्ण वाले सही वातावरण चर का समर्थन करता है। –