如果你不知道确切你想要的环境变量的名字,那么‘getenv()’函数不是很有用。在这种情况下,你必须更深入了解环境变量表的存储方式。 g3NLinux联盟 全局变量,‘char **envrion’,包含指向环境字符串指针数组的指针,每一个字符串的形式为‘“NAME=value”’(译者注:和putenv()中的“string”的格式相同)。这个数组以一个‘空’(NULL)指针标记结束。这里是一个打印当前环境变量列表的小程序(类似‘printenv’)。 g3NLinux联盟 #include <stdio.h>
extern char **environ;
int main()
{
char **ep = environ;
char *p;
while ((p = *ep++))
printf("%s\n", p);
return 0;
}
一般情况下,‘envrion’变量作为可选的第三个参数传递给‘main()’;就是说,上面的程序可以写成: g3NLinux联盟 #include <stdio.h>
int main(int argc, char **argv, char **envp)
{
char *p;
while ((p = *envp++))
printf("%s\n", p);
return 0;
}
虽然这种方法被广泛的操纵系统所支持(译者注:包括DOS),这种方法事实上并没有被POSIX(译者注:POSIX: Portable Operating System Interace)标准所定义。(一般的,它也比较没用) g3NLinux联盟
|