Книга: Основы программирования в Linux
Переменная environ
Переменная environ
Как вы уже знаете, окружение программы формируется из строк вида имя=значение. Этот массив строк становится доступен программе непосредственно из переменной environ, которая объявляется, как
#include <stdlib.h>
extern char **environ;
Выполните упражнение 4.5.
Упражнение 4.5. Переменная environ
Далее приведена программа showenv.c, использующая переменную environ для вывода переменных окружения.
#include <stdlib.h>
#include <stdio.h>
extern char **environ;
int main() {
char **env = environ;
while (*env) {
printf("%sn", *env);
env++;
}
exit(0);
}
Когда вы выполните программу в системе Linux, то получите нечто, похожее на следующий вывод, который немного сокращен. Количество, порядок отображения и значения этих переменных зависят от версии операционной системы, применяемой командной оболочки и настроек пользователя в момент выполнения программы.
$ ./showenv
HOSTNAME=tilde.provider.com
LOGNAME=neil
MAIL=/var/spool/mail/neil
TERM=xterm
HOSTTYPE=i386
PATH=/usr/local/bin:/bin:/usr/bin:
HOME=/usr/neil
LS_OPTIONS=-N --color=tty -T 0
SHELL=/bin/bash
OSTYPE=Linux
...
Как это работает
Для вывода всего окружения программа в цикле обращается к переменной environ
— массиву нуль-терминированных строк.
- Переменная jiffies
- Пример 9-8. Содержимое $* и $@, когда переменная $IFS -- пуста
- The GNOME Desktop Environment
- KDE — The Other Environment
- Using Environment Variables
- Chapter 12. Embedded Development Environment
- 2.3.8. Cross-Development Environment
- 12.1. Cross-Development Environment
- 5.1.5 Integrated Development Environments (IDEs)
- 5.3 mikroC Integrated Development Environment (IDE)
- Листинг 7.4. (print-environment.c) Отображение переменных среды процесса
- C News in an NFS Environment