2012-05-18 16 views
7

हम इस तरह सी में वातावरण चर प्राप्त कर सकते हैं:बाहरी चार ** पर्यावरण की परिभाषा कहां है?

extern char **environ; 
int main(int argc, char *argv[]) 
{ 
    int count = 0; 

    printf("\n"); 
    while(environ[count] != NULL) 
    { 
     printf("[%s] :: ", environ[count]); 
     count++; 
    } 

    return 0; 
} 

लेकिन जहां पर्यावरण की defination है? मैं इसे unistd.h में नहीं ढूंढ सकता। और यह कैसे काम करता है?

उत्तर

5

environ Glibc स्रोत फ़ाइल posix/environ.c में एक वैश्विक चर के रूप में परिभाषित किया गया है।

1

आदमी:

यह चर उपयोगकर्ता कार्यक्रम में घोषित किया जाना चाहिए, लेकिन हेडर फाइल unistd.h मामले में हेडर फाइल libc4 या libc5 से आया में घोषित किया जाता है, और मामले में वे glibc से आया और _GNU_SOURCE परिभाषित किया गया था।

+0

धन्यवाद, लेकिन जहां यह परिभाषित किया गया है? – nzomkxia

+0

glibc के स्रोत में मुझे लगता है कि – triclosan

+0

हेडर फ़ाइलों के विभिन्न स्रोत unistd.h में चर को परिभाषित करने के लिए अनुचित क्यों करते हैं? क्या आप इसे स्पष्ट कर सकते हैं? – nzomkxia

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