Посмотрите на глобальную переменную environ
.
extern char **environ;
Может быть определено в unistd.h
(взгляните на справочную страницу environ (5)
выше).
Вот небольшая демонстрация кода, которую я написал:
#include <stdio.h>
extern char **environ;
int main()
{
for (char **env = environ; *env; ++env)
printf("%s\n", *env);
}
Вот как это использовать:
matt@stanley:~/Desktop$ make enumenv CFLAGS=-std=c99
cc -std=c99 enumenv.c -o enumenv
matt@stanley:~/Desktop$ ./enumenv
ORBIT_SOCKETDIR=/tmp/orbit-matt
SSH_AGENT_PID=1474
TERM=xterm
SHELL=/bin/bash
... (so forth)