Provided by: manpages-ru-dev_4.27.0-1_all 

НАИМЕНОВАНИЕ
clearenv - очищает окружение
БИБЛИОТЕКА
Стандартная библиотека языка C (libc, -lc)
ОБЗОР
#include <stdlib.h>
int clearenv(void);
Требования макроса тестирования свойств для glibc (см. feature_test_macros(7)):
clearenv():
/* glibc >= 2.19: */ _DEFAULT_SOURCE
|| /* glibc <= 2.19: */ _SVID_SOURCE || _BSD_SOURCE
ОПИСАНИЕ
Функция clearenv() очищает окружение от всех пар имя-значение и устанавливает значение внешней переменной
environ равным NULL. После этого вызова новые переменные можно добавлять в окружение с помощью putenv(3)
и setenv(3).
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
Функция clearenv() возвращает ноль при успешном выполнении и ненулевое значение при ошибках.
АТРИБУТЫ
Описание терминов данного раздела смотрите в attributes(7).
┌──────────────────────────────────────────────────────────┬──────────────────────┬─────────────────────┐
│ Интерфейс │ Атрибут │ Значение │
├──────────────────────────────────────────────────────────┼──────────────────────┼─────────────────────┤
│ clearenv() │ Безвредность в нитях │ MT-Unsafe const:env │
└──────────────────────────────────────────────────────────┴──────────────────────┴─────────────────────┘
СТАНДАРТЫ
putenv()
POSIX.1-2008.
clearenv()
Отсутствуют.
ИСТОРИЯ
putenv()
glibc 2.0. POSIX.1-2001.
clearenv()
glibc 2.0.
Есть в различных версиях UNIX (DG/UX, HP-UX, QNX, …) В POSIX.9 (привязки для FORTRAN77). В POSIX.1-1996
функции clearenv() и putenv() не приняты, но указано, что они войдут в следующие версии стандарта
(смотрите §B.4.6.1). Однако, в POSIX.1-2001 добавлена только putenv(), а clearenv() — отклонена.
ПРИМЕЧАНИЯ
В системах, где clearenv() отсутствует, присваивайте
environ = NULL;
самостоятельно.
Функция clearenv() может пригодиться в приложениях, которые для безопасности полностью контролирую
окружение, передаваемое программам, запускающимся посредством exec(3). Для этого приложение сначала
очищает окружение, а затем добавляет выборочные переменные окружения.
Заметим, что главным свойством clearenv() является присвоение значения указателю environ(7); эта функция
не стирает содержимое буферов, содержащих само окружение.
В справочных страницах DG/UX и Tru64 написано: если environ изменялась не с помощью функций putenv(3),
getenv(3) или clearenv(), то clearenv() возвратит ошибку и окружение процесса не будет изменено.
СМОТРИТЕ ТАКЖЕ
getenv(3), putenv(3), setenv(3), unsetenv(3), environ(7)
ПЕРЕВОД
Русский перевод этой страницы руководства разработал(и) Azamat Hackimov <azamat.hackimov@gmail.com>,
Dmitriy S. Seregin <dseregin@59.ru>, Dmitry Bolkhovskikh <d20052005@yandex.ru>, Katrin Kutepova
<blackkatelv@gmail.com>, Yuri Kozlov <yuray@komyakino.ru>, Иван Павлов <pavia00@gmail.com> и Kirill
Rekhov <krekhov.dev@gmail.com>
Этот перевод является свободной программной документацией; он распространяется на условиях общедоступной
лицензии GNU (GNU General Public License - GPL, https://www.gnu.org/licenses/gpl-3.0.html версии 3 или
более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.
Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом
разработчику(ам) по его(их) адресу(ам) электронной почты или по адресу списка рассылки русских
переводчиков.
Справочные страницы Linux 6.9.1 2 мая 2024 г. clearenv(3)