extern char**environ的定义在哪里?

nzo*_*xia 9 c linux

我们可以在C中获取环境变量,如下所示:

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;
}
Run Code Online (Sandbox Code Playgroud)

但环境的定义在哪里?我在unistd.h中找不到.它是如何工作的?

Fre*_*Foo 7

environ被定义为Glibc源文件中的全局变量posix/environ.c.