使用environ打印环境变量

nit*_*ian 9 c environment-variables

如何使用"environ"在C程序中打印环境变量.

extern char**environ

sje*_*397 23

#include <unistd.h>
#include <stdio.h>

extern char **environ;
//...

int i = 0;
while(environ[i]) {
  printf("%s\n", environ[i++]); // prints in form of "variable=value"
}
Run Code Online (Sandbox Code Playgroud)

  • 你忘记了`extern char**environ;`.虽然一些非标准系统可能会在头文件中声明它,但POSIX指定它不可用,除非您手动声明它. (5认同)

jim*_*ara 5

你的意思是

int main(int argc, char **argv, char **envp)
{
    while(*envp!=null) {
        printf("%s\n", *envp);
        envp++;
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

  • 不,“extern char **environ;”是 POSIX 标准。“main”的这个签名完全是非标准的。 (9认同)