Linux программирование в примерах | страница 44
> ...
>}
Затем можно использовать >envp
также, как >environ
. Хотя это иногда можно увидеть в старом коде, мы не рекомендуем такое использование; >environ
является официальным, стандартным, переносимым способом получения доступа ко всему окружению, если это вам необходимо.
2.4.3. GNU >env
Чтобы завершить главу, рассмотрим GNU версию команды >env
. Эта команда добавляет переменные к окружению в ходе выполнения одной команды. Она может использоваться также для очищения окружения в ходе этой команды или для удаления отдельных переменных окружения. Программа обеспечивает нас двойной функциональностью, поскольку проявляет возможности как >getopt_long()
, так и несколько других возможностей, обсуждавшихся в этом разделе. Вот как вызывается программа:
>$ env --help
>Usage: env [OPTION]... [-] [NAME=VALUE]... [COMMAND [ARG]...]
>/* Устанавливает соответствующее VALUE для каждого NAME и запускает COMMAND */
>-i, --ignore-environment /* запустить с пустым окружением */
>-u, --unset=NAME /* удалить переменную из окружения */
>--help /* показать этот экран справки и выйти */
>--version /* вывести информацию о версии и выйти */
>/* Простое - предполагает -1. Если не указана COMMAND, отображает
> имеющееся окружение.
>Об ошибках сообщайте в
Вот несколько примеров вызовов команды:
>$ env - myprog arg1 /* Очистить окружение, запустить программу с args */
>$ env - РАТН=/bin:/usr/bin myprog arg1 /* Очистить окружение, добавить PATH, запустить программу */
>$ env -u IFS PATH=/bin:/usr/bin myprog arg1 /* Сбросить IFS, добавить PATH, запустить программу */
Код начинается со стандартной формулировки авторских прав GNU и разъясняющего комментария. Мы для краткости их опустили. (Формулировка авторского права обсуждается в Приложении С «Общедоступная лицензия GNU». Показанного ранее вывода >--help
достаточно для понимания того, как работает программа.) За объявленным авторским правом и комментарием следуют подключаемые заголовочные файлы и объявления. Вызов макроса '>N_("string")
' (строка 93) предназначен для использования при локализации программного обеспечения, тема, освещенная в главе 13 «Интернационализация и локализация». Пока вы можете рассматривать его, как содержащий строковую константу.
>80 #include
>81 #include
>82 #include
>83 #include
>84 #include
>85
>86 #include "system.h"
>87 #include "error.h"