2.4.2. Окружение в целом: environ

2.4.2. Окружение в целом: environ

Правильным способом работы с окружением является использование функций, описанных в предыдущем разделе. Однако, стоит взглянуть на то, как это работает «под капотом».

Внешняя переменная environ предоставляет доступ таким же способом, как argv предоставляет доступ к аргументам командной строки. Вы сами должны объявить переменную. Хотя она и стандартизирована POSIX, environ намеренно не объявлена ни в одном стандартном заголовочном файле (Это, кажется, прослеживается из исторической практики.) Вот объявление:

extern char **environ; /* Смотрите, нет заголовочного файла POSIX */

Как и в argv, завершающим элементом environ является NULL. Однако, здесь нет переменной «числа строк окружения», которая соответствовала бы argc. Следующая простая программа распечатывает все окружение:

/* ch02-printenv.c --- Распечатать окружение. */

#include <stdio.h>

extern char **environ;

int main(int argc, char **argv) {

 int i;

 if (environ != NULL)

  for (i = 0; environ[i] != NULL; i++)

   printf("%s ", environ[i]);

 return 0;

}

Хотя это и маловероятно, перед попыткой использовать environ эта программа проверяет, что она не равна NULL.

Переменные хранятся в окружении в случайном порядке. Хотя некоторые оболочки Unix хранят переменные окружения в отсортированном по именам переменных виде, это формально не требуется, и многие оболочки не сортируют их.

В качестве уловки реализации можно получить доступ к окружению, объявив третий параметр main():

int main(int argc, char **argv, char **envp) {

 ...

}

Затем можно использовать envp также, как environ. Хотя это иногда можно увидеть в старом коде, мы не рекомендуем такое использование; environ является официальным, стандартным, переносимым способом получения доступа ко всему окружению, если это вам необходимо.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

SMS: А в целом - фигня

Из книги Журнал «Компьютерра» №42 от 15 ноября 2005 года автора Журнал «Компьютерра»

SMS: А в целом - фигня Подведем итоги SMS-рейтинга материалов в последних пяти номерах. Промежуточных оценок немного, в основном двойки (единицы) и пятерки. Некоторые статьи попали в разные группы одновременно.ПятеркаАлексей Коновалов, «Хладокомбинат»Бёрд Киви, «Битва


5.6. Параметры и переменные. Окружение оболочки

Из книги Linux для пользователя автора Костромин Виктор Алексеевич

5.6. Параметры и переменные. Окружение оболочки Понятие параметра в оболочке bash подобно понятию переменной в обычных языках программирования. Именем (или идентификатором) параметра может быть слово, состоящее из алфавитных символов, цифр и знаков подчеркивания (только


Окружение и атмосферные эффекты

Из книги 3ds Max 2008 автора Верстак Владимир Антонович

Окружение и атмосферные эффекты Использование Environment (Окружающая среда) и Effects (Эффекты) позволяет создавать общее настроение, повышая реалистичность сцены. Элементы управления атмосферой предлагают широкий набор эффектов, включая туман, дымку, огонь, дым и т. д.Окно


Окружение

Из книги Asterisk™: будущее телефонии Второе издание автора Меггелен Джим Ван

Окружение Окружение системы образуют все факторы, которые сами по себе фактически не являются частью сервера, но тем не менее играют важную роль в формировании ожидаемых от системы надежности и качества. Электропитание, температура и влажность помещения, источники


Глава 9 Системное окружение Linux

Из книги Разработка приложений в среде Linux. Второе издание автора Джонсон Майкл К.

Глава 9 Системное окружение Linux В этой главе рассматривается процесс запроса системных служб, включая низкоуровневые средства ядра и высокоуровневые возможности


9.1. Окружение процесса

Из книги Самоучитель работы на Macintosh автора Скрылина Софья

9.1. Окружение процесса Как подробно описано в главе 10, в каждом выполняющемся процессе есть переменные окружения. Переменные окружения представляют собой пары "имя-значение", и некоторые из них представляют ценность для программистов на языке С. (Многие переменные в


4.6.2. Действия с изображением в целом

Из книги 3ds Max 2008 на 100 % автора Верстак Владимир Антонович

4.6.2. Действия с изображением в целом Для осуществления действий над изображением в целом не требуется его предварительно выделять, используя инструменты выбора, а если область выделения уже определена, то команда все равно распространяется целиком на всю


8.5. Окружение и атмосферные эффекты

Из книги Цифровой журнал «Компьютерра» № 162 автора Журнал «Компьютерра»

8.5. Окружение и атмосферные эффекты Использование Environment (Окружающая среда) и Effects (Эффекты) позволяет создавать общее настроение, повышая реалистичность сцены. Элементы управления атмосферой предлагают широкий набор эффектов, включая туман, дымку, огонь, дым и т. д.Окно


Зеркало цифр: Как соотносится российская отрасль программного обеспечения с состоянием экономики страны в целом? Михаил Ваннах

Из книги Цифровой журнал «Компьютерра» № 180 автора Журнал «Компьютерра»

Зеркало цифр: Как соотносится российская отрасль программного обеспечения с состоянием экономики страны в целом? Михаил Ваннах Опубликовано 26 февраля 2013О том, что в стране весьма динамично и вполне наблюдаемо развивается отрасль экспорта программного обеспечения, мы


Изящество линии: что может стать «двигателем» бытовой электроники и ИТ-индустрии в целом в ближайшее время? Михаил Ваннах

Из книги Цифровой журнал «Компьютерра» № 181 автора Журнал «Компьютерра»

Изящество линии: что может стать «двигателем» бытовой электроники и ИТ-индустрии в целом в ближайшее время? Михаил Ваннах Опубликовано 02 июля 2013 Есть одна греко-римская легенда. Будто бы, когда пылал дворец Юлия Цезаря на Палатине, там погибла


Тревожные прогнозы: рост мирового рынка ИТ отстает от роста мировой экономики в целом Михаил Ваннах

Из книги Денежный поток из Интернета автора Круглов Александр

Тревожные прогнозы: рост мирового рынка ИТ отстает от роста мировой экономики в целом Михаил Ваннах Опубликовано 10 июля 2013 Международный валютный фонд (МВФ) — организация, склонная скорее к оптимизму. И особенно интересно смотреть на его прогнозы


Окружение

Из книги Как приручить компьютер за несколько часов автора Ремнева Ирина

Окружение Следующий стратегический момент, который я хочу до вас довести. Хотите стать успешным в бизнесе – найдите возможность регулярно общаться с успешными людьми. Лучше всего завести себе друзей бизнесменов и миллионеров. Итак, вам надо изыскивать возможности


Сетевое окружение

Из книги автора

Сетевое окружение Честно сказать, словосочетание настораживает. Можно подумать, что нас окружили, да еще с сетями (чтоб точно не сбежали). На самом деле это название системной папки, которая помогает нам работать с сетью. Так, если у вас дома, например, стоят два компьютера