2012-05-18 17 views
7

possiamo ottenere la variabile d'ambiente in C come questo:dov'è la definizione di 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; 
} 

Ma dov'è il defination di environ? Non riesco a trovarlo in unistd.h. E come funziona?

risposta

5

environ è definito come una variabile globale nel file di origine Glibc posix/environ.c.

1

uomo:

Questa variabile deve essere dichiarata nel programma utente, ma viene dichiarato nel file di intestazione unistd.h nel caso in cui i file di intestazione provenivano da libc4 o libc5, e nel caso in cui è venuto da glibc e _GNU_SOURCE è stato definito.

+0

grazie, ma dove è definito? – nzomkxia

+0

nella src di glibc penso – triclosan

+0

perché le diverse fonti di file di intestazione rendono inappropriato definire la variabile in unistd.h? puoi chiarire? – nzomkxia

Problemi correlati