.\" -*- coding: UTF-8 -*- '\" t .\" Copyright 1993 David Metcalfe (david@prism.demon.co.uk) .\" and Copyright (C) 2007, 2012 Michael Kerrisk .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\" References consulted: .\" Linux libc source code .\" Lewine's "POSIX Programmer's Guide" (O'Reilly & Associates, 1991) .\" 386BSD man pages .\" Modified Sat Jul 24 19:30:29 1993 by Rik Faith (faith@cs.unc.edu) .\" Modified Fri Feb 14 21:47:50 1997 by Andries Brouwer (aeb@cwi.nl) .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH getenv 3 "20 июля 2023 г." "Linux man\-pages 6.05.01" .SH ИМЯ getenv, secure_getenv \- возвращают значения переменной окружения .SH LIBRARY Standard C library (\fIlibc\fP, \fI\-lc\fP) .SH СИНТАКСИС .nf \fB#include \fP .PP \fBchar *getenv(const char *\fP\fIname\fP\fB);\fP \fBchar *secure_getenv(const char *\fP\fIname\fP\fB);\fP .fi .PP .RS -4 Требования макроса тестирования свойств для glibc (см. \fBfeature_test_macros\fP(7)): .RE .PP \fBsecure_getenv\fP(): .nf _GNU_SOURCE .fi .SH ОПИСАНИЕ Функция \fBgetenv\fP() ищет в списке окружения переменную окружения \fIname\fP и возвращает указатель на соответствующую строку \fIvalue\fP. .PP Специальная функция GNU \fBsecure_getenv\fP() работает также как \fBgetenv\fP(), но возвращает NULL, если требуется «безопасное выполнение». Безопасное выполнение требуется, если верно одно из следующих условий на момент загрузки программы вызывающего процесса: .IP \[bu] 3 эффективный пользовательский ID процесса не совпадает с реальным пользовательским ID или эффективный групповой ID процесса не совпадает с реальным групповым ID (обычно в результате выполнения программы с установленным битом set\-user\-ID или set\-group\-ID); .IP \[bu] у исполняемого файла установлен эффективный мандатный бит; или .IP \[bu] у процесса имеется непустой ограничивающий набор мандатов. .PP Безопасное выполнение также может требоваться некоторыми модулями безопасности Linux. .PP Функция \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 .sp 1 .SH СТАНДАРТЫ .TP \fBgetenv\fP() C11, POSIX.1\-2008. .TP \fBsecure_getenv\fP() GNU. .SH ИСТОРИЯ .TP \fBgetenv\fP() POSIX.1\-2001, C89, C99, SVr4, 4.3BSD. .TP \fBsecure_getenv\fP() glibc 2.17. .SH ЗАМЕЧАНИЯ Строки в списке окружения имеют вид \fIимя=значение\fP. .PP В типичной реализации \fBgetenv\fP() возвращает указатель на строку в списке окружения. Вызывающий не должен изменять эту строку, так как это изменить окружение процесса. .PP Реализации \fBgetenv\fP() не требуется быть реентерабельной. Строка, указанная в возвращаемом значение \fBgetenv\fP(), может быть выделена статически и может изменяться после вызова \fBgetenv\fP() с помощью \fBputenv\fP(3), \fBsetenv\fP(3) или \fBunsetenv\fP(3). .PP Режим «безопасного выполнения» в \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 Этот перевод является бесплатной документацией; прочитайте .UR https://www.gnu.org/licenses/gpl-3.0.html Стандартную общественную лицензию GNU версии 3 .UE или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ. .PP Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо на .MT man-pages-ru-talks@lists.sourceforge.net .ME .