У меня есть программа на C, которая печатает каждую переменную окружения, имя которой задается стандартным вводом. Он печатает такие переменные, как $PATH, $USER, но не видит переменные окружения, которые я сам определяю в оболочке Linux... Например, в bash я определяю my=4, и я ожидаю, что программа вернет 4, когда я введите «мой».
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. Спасибо..
malloc
блокировать фиксированную длину. Достаточноchar key[30]
. (Кстати, вы никогда неfree
блокируете.) - person Fred Foo   schedule 23.03.2011