.\" -*- coding: UTF-8 -*- '\" t .\" Copyright 1993, David Metcalfe .\" Copyright 2007-2012, Michael Kerrisk .\" Copyright, the authors of the Linux man-pages project .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH getenv 3 "8 февраля 2026 г." "Справочные страницы Linux 6.17" .SH НАИМЕНОВАНИЕ getenv, secure_getenv \- возвращают значения переменной окружения .SH БИБЛИОТЕКА Стандартная библиотека языка C (\fIlibc\fP,\ \fI\-lc\fP) .SH ОБЗОР .nf \fB#include \fP .P \fBchar *getenv(const char *\fP\fIname\fP\fB);\fP \fBchar *secure_getenv(const char *\fP\fIname\fP\fB);\fP .fi .P .RS -4 Требования макроса тестирования свойств для glibc (см. \fBfeature_test_macros\fP(7)): .RE .P \fBsecure_getenv\fP(): .nf _GNU_SOURCE .fi .SH ОПИСАНИЕ Функция \fBgetenv\fP() ищет в списке окружения переменную окружения \fIname\fP и возвращает указатель на соответствующую строку \fIvalue\fP. .P The \fBsecure_getenv\fP() function is just like \fBgetenv\fP() except that it returns NULL in cases where "secure execution" is required. Secure execution is required if one of the following conditions was true when the program run by the calling process was loaded: .IP \[bu] 3 эффективный пользовательский ID процесса не совпадает с реальным пользовательским ID или эффективный групповой ID процесса не совпадает с реальным групповым ID (обычно в результате выполнения программы с установленным битом set\-user\-ID или set\-group\-ID); .IP \[bu] у исполняемого файла установлен эффективный мандатный бит; или .IP \[bu] у процесса имеется непустой ограничивающий набор мандатов. .P Безопасное выполнение также может требоваться некоторыми модулями безопасности Linux. .P Функция \fBsecure_getenv\fP() предназначена для библиотек общего назначения с целью недопущения уязвимостей, которые могли бы возникнуть, если программы с битом set\-user\-ID или set\-group\-ID ненамеренно доверяли бы окружению. .SH "ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ" Функция \fBgetenv\fP() возвращает указатель на значение в окружении или NULL, если ничего не найдено. .SH АТРИБУТЫ Описание терминов данного раздела смотрите в \fBattributes\fP(7). .TS allbox; lbx lb lb l l l. Интерфейс Атрибут Значение T{ .na .nh \fBgetenv\fP(), \fBsecure_getenv\fP() T} Безвредность в нитях MT\-Safe env .TE .SH СТАНДАРТЫ .TP \fBgetenv\fP() C11, POSIX.1\-2008. .TP \fBsecure_getenv\fP() POSIX.1\-2024. .SH ИСТОРИЯ .TP \fBgetenv\fP() POSIX.1\-2001, C89, C99, SVr4, 4.3BSD. .TP \fBsecure_getenv\fP() POSIX.1\-2024, glibc 2.17. .SH ПРИМЕЧАНИЯ Строки в списке окружения имеют вид \fIимя=значение\fP. .P В типичной реализации \fBgetenv\fP() возвращает указатель на строку в списке окружения. Вызывающий не должен изменять эту строку, так как это изменить окружение процесса. .P Реализации \fBgetenv\fP() не требуется быть реентерабельной. Строка, указанная в возвращаемом значение \fBgetenv\fP(), может быть выделена статически и может изменяться после вызова \fBgetenv\fP() с помощью \fBputenv\fP(3), \fBsetenv\fP(3) или \fBunsetenv\fP(3). .P Режим «безопасного выполнения» в \fBsecure_getenv\fP() управляется флагом \fBAT_SECURE\fP вспомогательного вектора, передаваемого из ядра в пользовательское пространство. .SH "СМОТРИТЕ ТАКЖЕ" \fBclearenv\fP(3), \fBgetauxval\fP(3), \fBputenv\fP(3), \fBsetenv\fP(3), \fBunsetenv\fP(3), \fBcapabilities\fP(7), \fBenviron\fP(7) .PP .SH ПЕРЕВОД Русский перевод этой страницы руководства разработал(и) Azamat Hackimov , Dmitry Bolkhovskikh , Vladislav , Yuri Kozlov и Иван Павлов . .PP Этот перевод является свободной программной документацией; он распространяется на условиях общедоступной лицензии GNU (GNU General Public License - GPL, .UR https://www.gnu.org/licenses/gpl-3.0.html .UE версии 3 или более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ. .PP Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом разработчику(ам) по его(их) адресу(ам) электронной почты или по адресу .MT списка рассылки русских переводчиков .ME .