Linux
2017-09-15
man-pages-ru
Russian man pages from the Linux Documentation Project
manpages-dev
Manual pages about using GNU/Linux for development
man-pages
Linux kernel and C library user-space interface documentation
ИМЯ
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
/* начиная с glibc 2.19: */ _DEFAULT_SOURCE
|| /* версии glibc <= 2.19: */ _SVID_SOURCE || _BSD_SOURCE
ОПИСАНИЕ
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
Функция 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() не приняты, но указано, что они войдут в следующие версии стандарта (смотрите [sc]B.4.6.1). Однако, в POSIX.1-2001 добавлена только putenv(), а clearenv() — отклонена.
ЗАМЕЧАНИЯ
В системах, где clearenv() отсутствует, присваивайте
environ = NULL;
самостоятельно.
Функция clearenv() может пригодиться в приложениях, которые для безопасности полностью контролирую окружение, передаваемое программам, запускающимся посредством exec(3). Для этого приложение сначала очищает окружение, а затем добавляет выборочные переменные окружения.
Заметим, что главным свойством clearenv() является присвоение значения указателю environ(7); эта функция не стирает содержимое буферов, содержащих само окружение.