setenv - изменяет
или
добавляет
переменную
окружения
Standard C library (
libc,
-lc)
#include <stdlib.h>
int setenv(const char *name, const char *value, int overwrite);
int unsetenv(const char *name);
setenv(),
unsetenv():
_POSIX_C_SOURCE >= 200112L
|| /* glibc <= 2.19: */ _BSD_SOURCE
Функция
setenv()
добавляет
переменную
name в
окружение
со
значением
value, если
name
ещё не
существует.
Если
name в
окружении
существует,
то её
значение
изменяется
на
value, если
overwrite имеет
ненулевое
значение;
если
overwrite
равно нулю,
то
значение
name
не
изменяется
(и
setenv()
завершается
без ошибки).
Эта
функция
делает
копию
строк,
указанных
в
name и
value (в
отличии от
putenv(3)).
Функция
unsetenv()
удаляет
переменную
name из
окружения.
Если
name в
окружении
не
существует,
то функция
завершается
без ошибки
и
окружение
не
изменяется.
setenv() and
unsetenv() functions return zero on success, or -1 on
error, with
errno set to indicate the error.
- EINVAL
-
name is NULL, points to a string of length 0, or
contains an '=' character.
- ENOMEM
- Недостаточно
памяти для
добавления
новой
переменной
в
окружение.
Описание
терминов
данного
раздела
смотрите в
attributes(7).
Интерфейс |
Атрибут |
Значение |
setenv(), unsetenv() |
Безвредность
в нитях |
MT-Unsafe const:env |
POSIX.1-2001, POSIX.1-2008, 4.3BSD.
В POSIX.1 не
требуется,
чтобы
setenv()
или
unsetenv() были
реентерабельными.
До glibc 2.2.2,
unsetenv()
объявлялась
как
возвращающая
void; более
новые
версии glibc
следуют
объявлению
из POSIX.1,
показанному
в ОБЗОРЕ.
POSIX.1 specifies that if
name contains an '=' character, then
setenv() should fail with the error
EINVAL; however, versions of
glibc before glibc 2.3.4 allowed an '=' sign in
name.
clearenv(3),
getenv(3),
putenv(3),
environ(7)
Русский
перевод
этой
страницы
руководства
был сделан
Alexander Golubev <
[email protected]>, Azamat Hackimov
<
[email protected]>, Hotellook, Nikita
<
[email protected]>, Spiros Georgaras <
[email protected]>, Vladislav
<
[email protected]>, Yuri Kozlov <
[email protected]>
и Иван
Павлов <
[email protected]>
Этот
перевод
является
бесплатной
документацией;
прочитайте
Стандартную
общественную
лицензию GNU
версии 3
или более
позднюю,
чтобы
узнать об
условиях
авторского
права. Мы не
несем
НИКАКОЙ
ОТВЕТСТВЕННОСТИ.
Если вы
обнаружите
ошибки в
переводе
этой
страницы
руководства,
пожалуйста,
отправьте
электронное
письмо на
[email protected]