क्या पर्यावरण चर का आकलन करने और सी का उपयोग करके मूल्यों को पुनर्प्राप्त करने का कोई तरीका है?यूनिक्स में सी के साथ पर्यावरण चर की सूची
उत्तर
environ
वैश्विक चर पर एक नज़र डालें।
extern char **environ;
यह (ऊपर environ (5)
आदमी पृष्ठ पर एक नज़र लेने के लिए) unistd.h
में परिभाषित किया जा सकता है।
यह एक छोटा सा कोड डेमो मैंने लिखा है:
#include <stdio.h>
extern char **environ;
int main()
{
for (char **env = environ; *env; ++env)
printf("%s\n", *env);
}
इसका इस्तेमाल करने के तरीके:
[email protected]:~/Desktop$ make enumenv CFLAGS=-std=c99
cc -std=c99 enumenv.c -o enumenv
[email protected]:~/Desktop$ ./enumenv
ORBIT_SOCKETDIR=/tmp/orbit-matt
SSH_AGENT_PID=1474
TERM=xterm
SHELL=/bin/bash
... (so forth)
पर्यावरण जानकारी मुख्य के लिए एक अतिरिक्त पैरामीटर के रूप में पारित किया जा सकता। मुझे नहीं पता कि यह अनुपालन है या नहीं, लेकिन यह निश्चित रूप से काम करता है (उबंटू पर परीक्षण)। बस अतिरिक्त तर्क और उसके नल सूचक द्वारा समाप्त चार पॉइंटर्स की एक सरणी परिभाषित करें। निम्नलिखित बहुत प्रिंट करेंगे।
#include <stdio>
int main(int argc, char *argv[], char *envp[])
{
int index = 0;
while (envp[index])
printf("%s\n", envp[index++];
}
+1: – sje397
से पहले कभी इस बारे में नहीं सुना है अभ्यास में यह ज्यादातर इकाइयों पर काम करता है, लेकिन यह POSIX द्वारा निर्दिष्ट नहीं है। 'बाहरी चार ** वातावरण का उपयोग करें; '। –
जैसा कि जोनाथन ने मेरी अन्य टिप्पणियों में से एक को जवाब दिया, POSIX 2008 के रूप में * अब * unistd.h का हिस्सा है। –
पेज 127.
पर पुस्तक "लिनक्स प्रोग्रामिंग इंटरफ़ेस" में एक डेमो लिस्टिंग 6-3 है: प्रक्रिया पर्यावरण प्रदर्शित ------------ ------------------------------------ proc/display_env.c
#include "tlpi_hdr.h"
extern char **environ;
int
main(int argc, char *argv[])
{
char **ep;
for (ep = environ; *ep != NULL; ep++)
puts(*ep);
exit(EXIT_SUCCESS);
}
- 1. टीएमपी पर्यावरण चर के साथ क्या हुआ?
- 2. सभी पर्यावरण चरों की प्रिंट सूची
- 3. एमएसबिल्ड को पर्यावरण चर की आवश्यकता है
- 4. क्या विजुअल स्टूडियो पर्यावरण चर की एक सूची है?
- 5. persistence.xml फ़ाइल में पर्यावरण चर पढ़ें
- 6. यूनिक्स के साथ यूनिक्स खोजें
- 7. डेल्फी पूर्वनिर्धारित पर्यावरण चर
- 8. प्रतीकात्मक लिंक में पर्यावरण चर
- 9. पर्यावरण चर में एसएसएच कुंजी
- 10. रूबी पर्यावरण चर
- 11. कॉलिंग प्रक्रिया के पर्यावरण चर बदलना
- 12. सी #, चर के साथ और चर
- 13. क्या एक पर्यावरण चर
- 14. पर्यावरण चर के साथ मैक ग्रहण लॉन्च करें
- 15. विंडोज बैच (cmd.exe) में फ़ाइल से पर्यावरण चर पढ़ें
- 16. सी # में उपयोगकर्ता पर्यावरण चर को कैसे पढ़ा जाए?
- 17. जावास्क्रिप्ट पर्यावरण चर
- 18. मैं सी # में पर्यावरण चर कैसे प्राप्त और सेट करूं?
- 19. MSBuild अंतर्निर्मित चर की सूची
- 20. XDG_SESSION_COOKIE पर्यावरण चर के लिए क्या है?
- 21. स्काला चर तर्क सूची के साथ अंतर्निहित
- 22. तर्क पारित करने की रणनीति - पर्यावरण चर बनाम कमांड लाइन
- 23. यूनिक्स टीमसिटी बिल्ड एजेंट पर मैं पर्यावरण चर पैथ और LD_LIBRARY_PATH कैसे सेट कर सकता हूं?
- 24. सी # सेट पर्यावरण परिवर्तनीय
- 25. विंडोज रजिस्ट्री चर बनाम पर्यावरण चर?
- 26. उप परियोजनाओं के लिए एक्सकोड पर्यावरण चर
- 27. पर्यवेक्षक पर्यावरण चर सेट अप
- 28. सी # एक पर्यावरण परिवर्तनीय के साथ सशर्त() का उपयोग कर
- 29. पर्यावरण चर से पथ निकालें
- 30. चींटी स्क्रिप्ट में पर्यावरण चर सेट करना
यह परिभाषित नहीं है unistd.h में, या यदि यह है, तो आपका सिस्टम POSIX अनुपालन नहीं है। POSIX के लिए आपको 'बाहरी चार ** वातावरण स्पष्ट रूप से घोषित करने की आवश्यकता है;' यदि आप इसका उपयोग करना चाहते हैं। –
@ आर, +1। कम से कम मेरे सिस्टम पर, यह केवल 'unistd.h' में घोषित किया गया है यदि' __USE_GNU' सेट है, जो इंगित करता है कि यह एक एक्सटेंशन है। (एफडब्ल्यूआईडब्ल्यू, '__environ', एक एक्सटेंशन भी, बिना शर्त घोषित किया जाता है)। –
@ आर: हाँ मैंने इसे अपने उदाहरण कोड में किया था। –