The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Интерактивная система просмотра системных руководств (man-ов)

 ТемаНаборКатегория 
 
 [Cписок руководств | Печать]

environ (5)
  • environ (3) ( POSIX man: Библиотечные вызовы )
  • environ (4) ( Solaris man: Специальные файлы /dev/* )
  • environ (5) ( Solaris man: Форматы файлов )
  • >> environ (5) ( Русские man: Форматы файлов )
  • environ (5) ( Linux man: Форматы файлов )
  • environ (7) ( FreeBSD man: Макропакеты и соглашения )
  • environ (7) ( Linux man: Макропакеты и соглашения )
  •  

    ИМЯ

    environ - окружение пользователя  

    ОБЗОР

    extern char **environ;
    
     

    ОПИСАНИЕ

    Переменная environ указывает на массив строк, называемый `environment' (окружение). (Данная переменная должна быть описана в программе пользователя, а кроме того она описывается в заголовочном файле unistd.h в том случае, если мы говорим о libc4 или libc5, а для glibc это справедливо только если был задан флаг _GNU_SOURCE ). Указанный массив строк, становится доступным процессу через вызов exec(3), который запускает процесс. По договорённости, эти строки имеют вид `имя=значение'. Вот некоторые примеры:
    USER
    Имя пользователя, зарегистрированного в системе (используется некоторыми программами, происходящими из BSD)
    LOGNAME
    Имя пользователя, зарегистрированного в системе (используется некоторыми программами, происходящими из System-V)
    HOME
    Домашний каталог пользователя, устновленный программой login(1), взятый из файла паролей passwd(5).
    LANG
    Имя локали (от локали зависят многие региональные настройки -- прим.пер.), используемой для категорий локали, которые не перекрыты LC_ALL или более специфичными переменными окружения, такими как LC_COLLATE, LC_CTYPE, LC_MESSAGES, LC_MONETARY, LC_NUMERIC и LC_TIME. См. locale(5).
    PATH
    Последовательность каталогов, которых sh(1) и многие другие программы, будут применять в качестве префикса при поиске файла, если он задан неполным именем. Каталоги разделяются `:'. (Похожим образом CDPATH используется некоторыми программами для поиска команды смены каталога, MANPATH используется командой man(1) для поиска страниц электронного руководства и т.д.)
    PWD
    Текущий рабочий каталог. Устанавливается некоторыми программами.
    SHELL
    Имя командного интерпретатора пользователя.
    TERM
    Тип терминала, для которого будет подготавливаться вывод.
    PAGER
    Предпочитаемая пользователем утилита просмотра текстовых файлов.
    EDITOR/VISUAL
    Предпочитаемая пользователем утилита редактирования текстовых файлов.
    BROWSER
    Предпочитаемая пользователем утилита просмотра URL. Последовательность, разделённых двоеточиями, команд-браузеров. См. See http://www.catb.org/~esr/BROWSER/ .

    Вышеуказанные имена переменных могут быть помещены в окружение командой export и `имя=значение' в sh(1), или командой setenv, если вы используете csh(1). При вызове exec(3). в окружение также могут быть помещены и аргументы. Программа, написанная на языке C может манипулировать своим окружением с помощью функций getenv(3), putenv(3), setenv(3), и unsetenv(3).

    Заметим, что наличие или значения определённых переменных окружения может отказывать влияние на поведение многих программ и библиотечных вызовов. Вот случайная подборка:

    Переменные LANG, LANGUAGE, NLSPATH, LOCPATH, LC_ALL, LC_MESSAGES, и т.д. влияют на управление региональными настройками, см. locale(5).

    TMPDIR влияет на путь файлов, создаваемых вызовом tmpnam(3) и через некоторые другие вызовы, временный каталог также используется программой sort(1) и некоторыми другими, и т.д.

    LD_LIBRARY_PATH, LD_PRELOAD и другие переменные LD_* влияют на поведение динамического загрузчика и редактора связей (компановщика).

    POSIXLY_CORRECT делает поведение определённых программ и системных вызовов соответствующим POSIX.

    На поведение malloc(3) оказывают влияние переменные MALLOC_*.

    Переменная HOSTALIASES задаёт имя файла, содержащего псевдонимы имени узла, которые используются вызовом gethostbyname(3).

    TZ и TZDIR задают информацию о временной зоне, используемую вызовом tzset(3) и такими функциями как ctime(), localtime(), mktime(), strftime(). См. также tzselect(1).

    TERMCAP задаёт информацию о адресе терминала (или имя файла, содержащего такую информацию).

    COLUMNS и LINES говорят приложению о размере окна, возможно перекрывая фактический размер.

    PRINTER и LPDEST могут задавать предпочтительный принтер. См. lpr(1).

    и т.д.  

    ОШИБКИ

    Честно говоря, использование переменных окружения таит в себе проблемы безопасности. Многие системные команды могут быть обмануты пользователем, который может задать неправильные значения для переменных IFS или LD_LIBRARY_PATH.

    Также есть риск с загрязнением пространства имен. Такие программы как make и autoconf позволяют перекрывать имена назначенных по умолчанию утилит, через переменные окружения. Например, переменная CC используется для выбора нужного C-компилятора (и похожим образом можно использовать переменные MAKE, AR, AS, FC, LD, LEX, RM, YACC, и т.д.) Однако, в некоторых традиционных случаях, эти переменные окружения задают опции для данных программ, вместо их имени. Например MORE, LESS, и GZIP. Такое использование переменных окружения является ошибочным и будет избегаться в новых программах. Авторы gzip должны бы переименовать переменную в GZIP_OPT.  

    СМОТРИ ТАКЖЕ

    login(1), sh(1), bash(1), csh(1), tcsh(1), execve(2), exec(3), getenv(3), putenv(3), setenv(3), clearenv(3), unsetenv(3), locale(5)  

    ПЕРЕВОД

    Перевёл с английского Виктор Вислобоков <corochoone@perm.ru> 2004


     

    Index

    ИМЯ
    ОБЗОР
    ОПИСАНИЕ
    ОШИБКИ
    СМОТРИ ТАКЖЕ
    ПЕРЕВОД


    Поиск по тексту MAN-ов: 




    Спонсоры:
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2020 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру