clearenv

CLEARENV(3)              Руководство программиста Linux              CLEARENV(3)



ИМЯ
       clearenv - очищает окружение

ОБЗОР
       #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() возвращает ноль при успешном выполнении и ненулевое
       значение при ошибках.

ВЕРСИИ
       Доступна в glibc с версии 2.0.

АТРИБУТЫ
       Описание терминов данного раздела смотрите в attributes(7).

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

СООТВЕТСТВИЕ СТАНДАРТАМ
       Есть в различных версиях 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)



Linux                              2016-03-15                        CLEARENV(3)