Provided by: manpages-ru-dev_4.21.0-2_all bug

ИМЯ

       getenv, secure_getenv - возвращают значения переменной окружения

LIBRARY

       Standard C library (libc, -lc)

СИНТАКСИС

       #include <stdlib.h>

       char *getenv(const char *name);
       char *secure_getenv(const char *name);

   Требования макроса тестирования свойств для glibc (см. feature_test_macros(7)):

       secure_getenv():
           _GNU_SOURCE

ОПИСАНИЕ

       Функция  getenv() ищет в списке окружения переменную окружения name и возвращает указатель
       на соответствующую строку value.

       Специальная функция GNU secure_getenv() работает также как getenv(), но  возвращает  NULL,
       если  требуется  «безопасное выполнение». Безопасное выполнение требуется, если верно одно
       из следующих условий на момент загрузки программы вызывающего процесса:

       •  эффективный пользовательский ID процесса не совпадает с  реальным  пользовательским  ID
          или  эффективный  групповой  ID процесса не совпадает с реальным групповым ID (обычно в
          результате выполнения программы с установленным битом set-user-ID или set-group-ID);

       •  у исполняемого файла установлен эффективный мандатный бит; или

       •  у процесса имеется непустой ограничивающий набор мандатов.

       Безопасное выполнение также может требоваться некоторыми модулями безопасности Linux.

       Функция secure_getenv() предназначена для библиотек общего назначения с целью  недопущения
       уязвимостей,  которые  могли  бы  возникнуть,  если  программы  с  битом  set-user-ID  или
       set-group-ID ненамеренно доверяли бы окружению.

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ

       Функция getenv() возвращает указатель на значение в окружении или  NULL,  если  ничего  не
       найдено.

ВЕРСИИ

       Функция secure_getenv() впервые появилась в glibc версии 2.17.

АТРИБУТЫ

       Описание терминов данного раздела смотрите в attributes(7).

       ┌────────────────────────────────────────────────────┬──────────────────────┬─────────────┐
       │ИнтерфейсАтрибутЗначение    │
       ├────────────────────────────────────────────────────┼──────────────────────┼─────────────┤
       │getenv(), secure_getenv()                           │ Безвредность в нитях │ MT-Safe env │
       └────────────────────────────────────────────────────┴──────────────────────┴─────────────┘

СТАНДАРТЫ

       getenv(): POSIX.1-2001, POSIX.1-2008, C99, SVr4, 4.3BSD.

       Функция secure_getenv() является расширением GNU.

ЗАМЕЧАНИЯ

       Строки в списке окружения имеют вид имя=значение.

       В  типичной  реализации  getenv()  возвращает  указатель  на  строку  в  списке окружения.
       Вызывающий не должен изменять эту строку, так как это изменить окружение процесса.

       Реализации getenv() не требуется быть реентерабельной. Строка,  указанная  в  возвращаемом
       значение getenv(), может быть выделена статически и может изменяться после вызова getenv()
       с помощью putenv(3), setenv(3) или unsetenv(3).

       Режим  «безопасного   выполнения»   в   secure_getenv()   управляется   флагом   AT_SECURE
       вспомогательного вектора, передаваемого из ядра в пользовательское пространство.

СМ. ТАКЖЕ

       clearenv(3), getauxval(3), putenv(3), setenv(3), unsetenv(3), capabilities(7), environ(7)

ПЕРЕВОД

       Русский    перевод    этой    страницы    руководства    был    сделан   Azamat   Hackimov
       <azamat.hackimov@gmail.com>,   Dmitry   Bolkhovskikh   <d20052005@yandex.ru>,    Vladislav
       <ivladislavefimov@gmail.com>,    Yuri    Kozlov   <yuray@komyakino.ru>   и   Иван   Павлов
       <pavia00@gmail.com>

       Этот  перевод  является  бесплатной  документацией;  прочитайте  Стандартную  общественную
       лицензию GNU версии 3 ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ или более позднюю, чтобы
       узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.

       Если вы обнаружите ошибки в переводе  этой  страницы  руководства,  пожалуйста,  отправьте
       электронное письмо на ⟨man-pages-ru-talks@lists.sourceforge.net⟩.