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
       или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.

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

Linux man-pages 6.03                            5 февраля 2023 г.                                      getenv(3)