我有一個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