我有一个C程序打印每个环境变量,其名称由标准输入。 它打印变量,如$ PATH,$ USER但它看不到我在Linux shell中定义自己的环境变量...例如,在bash中,我定义了my = 4,并且我期望程序返回4当我提供输入“我的”。使用getenv函数
int main () {
char * key = (char *)malloc(30);
scanf("%s", key);
if(getenv(key) != NULL)
printf("%s\n", getenv(key));
else
printf("NULL\n");
return 0;
}
我该怎么做才能改善getenv的结果? 我希望它向我展示所有环境变量以及来自Linux shell的所有继承。 谢谢..
不需要'malloc'固定长度块。只要'char key [30]'就可以。 (你从来没有'免费'的块,顺便说一句) – 2011-03-23 08:12:27
@larsmans:谢谢你的观察,这只是一个匆忙的例子,我需要在更广泛的背景下getenv :) – shaku 2011-03-25 15:41:30