2012-05-03 15 views
13

मैं प्रोग्राम के पर्यावरण चर प्राप्त करने के लिए GetEnvironmentString() का उपयोग करता हूं।ये अजीब पर्यावरण चर क्या हैं?

=::=::\ 

मैं नहीं जानता कि इसका क्या मतलब है:

हर कार्यक्रम में पहली बार इस तरह के परिणाम है?

LPWCH lpEnvString=GetEnvironmentStringsW(); 
LPWSTR lpszVariable=(LPWSTR)lpEnvString; 
while (*lpszVariable) 
{ 
    wprintf(L"%s\n",lpszVariable); 
    lpszVariable+=wcslen(lpszVariable)+1; 
} 
FreeEnvironmentStringsW(lpEnvString); 

इसके अलावा, अगर हम इस तरह के चर लिस्टिंग हम जैसे सामान देखना होगा शुरू:

=::=::\ 
=C:=C:\Users\username\value 
=ExitCode=00000001 
ALLUSERSPROFILE=C:\ProgramData 
APPDATA=C:\Users\artik\AppData\Roaming 
CommonProgramFiles=C:\Program Files (x86)\Common Files 
CommonProgramFiles(x86)=C:\Program Files (x86)\Common Files 
CommonProgramW6432=C:\Program Files\Common Files 
... 

दूसरी ओर, getenv("=ExitCode") या getenv("=C:") रिटर्न नल

यहाँ कोड है।

आप इस "सुविधा" का एक उचित प्रलेखन प्रदान कर सकते हैं, उदाहरण के लिए getenv() इस तरह के तार और कैसे इस तरह के मूल्यों पर ध्यान नहीं देता व्यवहार किया जाना चाहिए?

+1

हमें कोड दिखाएं। – Nick

+2

@Nick आपको केवल 'GetEnvironmentStrings() ' –

+0

पर कॉल करना है, मुझे लगता है कि मैं यह जांचना चाहता था कि वह स्ट्रिंग मान प्राप्त करने के लिए रिटर्न वैल्यू के साथ क्या कर रहा था। इसके अलावा - आप मान रहे हैं कि मेरे पास एक विंडोज पीसी है :) – Nick

उत्तर

8

वे cmd.exe emulating ms-dos निर्देशिका हैंडलिंग से बचे हुए हैं, वे मूल रूप से कम उपयोग करते हैं, और किसी भी चीज़ से अधिक पुरातन हैं। अनिवार्य रूप से, यह एक प्रति ड्राइव वर्तमान निर्देशिका का ट्रैक रखता है, और आसानी से अन्य प्रक्रियाओं को पारित करने के लिए पर्यावरण चर के रूप में रखा जाता है।

+0

प्रश्न यह है कि उदाहरण के लिए getenv उन्हें कैसे संभालना चाहिए, दस्तावेज के लिए प्रश्न अधिक है। दस्तावेज़ों के लिए पॉइंटर्स आवश्यक हैं। – Artyom

+2

@ आर्टिम, मुझे लगता है कि टेकवे यह है कि '=' से शुरू होने वाली कोई भी चीज़ शैल के लिए निजी है और जानबूझकर अनियंत्रित है, और इसे अनदेखा किया जाना चाहिए। –

+0

@MarkRansom समस्या यह है कि ये स्ट्रिंग GetEnvironmentStrings सूची में दिखाई देती हैं और ऐसे व्यवहार को अस्पष्ट रूप से अनदेखा किया जाता है कि उन्हें – Artyom

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