我们可以在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;
}但是环境的定义在哪里呢?我在unistd.h中找不到它。它是如何工作的呢?
发布于 2012-05-18 17:07:01
在Glibc源文件posix/environ.c中,environ被定义为一个全局变量。
发布于 2012-05-18 16:35:52
您是否尝试过将envp声明为main的参数?
int main (int argc, char *argv[], char *envp[])http://www.gnu.org/software/libc/manual/html_node/Program-Arguments.html#Program-Arguments
发布于 2012-05-18 16:35:50
男人:
此变量必须在用户程序中声明,但在头文件unistd.h中声明,如果头文件来自libc4或libc5,并且它们来自glibc且定义了_GNU_SOURCE。
https://stackoverflow.com/questions/10649273
复制相似问题