2012-05-18 23 views
7

我們可以得到環境變量用C這樣的:extern char ** environ的定義在哪裏?

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; 
} 

但如果是環保,無毒的認定中?我無法在unistd.h中找到它。它是如何工作的?

回答

1

人:

此變量必須在用戶程序中聲明,但在情況下,頭文件從libc4或libc5的附帶的頭文件unistd.h中聲明,並在情況下,他們從glibc的來和_GNU_SOURCE被定義。

+0

謝謝,但它在哪裏定義? – nzomkxia

+0

在glibc的src中我認爲 – triclosan

+0

爲什麼不同的頭文件源會使它不適合在unistd.h中定義變量?你能說清楚嗎? – nzomkxia