2012-05-18 17 views
7

podemos obtener la variable de entorno en C así:¿dónde está la definición de 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; 
} 

pero ¿dónde está el defination de Environ? No puedo encontrar eso en unistd.h. ¿Y, cómo funciona?

Respuesta

5

environ se define como una variable global en el archivo de fuentes de Glibc posix/environ.c.

1

hombre:

Esta variable se debe declarar en el programa de usuario, pero se declara en el unistd.h archivo de cabecera en caso de que los archivos de cabecera vinieron de libc4 o libc5, y en caso de que venía de glibc y _GNU_SOURCE fue definido.

+0

gracias, pero ¿dónde está definido? – nzomkxia

+0

en el src de glibc Creo que – triclosan

+0

¿por qué las diferentes fuentes de archivos de cabecera hacen que sea inapropiado definir la variable en unistd.h? puedes dejarlo en claro? – nzomkxia

Cuestiones relacionadas