setenv()

Создать или изменить переменную окружения

Прототип:

#include <stdlib.h>
int setenv( const char *name,
const char *value,
int overwrite );

Аргументы:

name
Имя переменной среды, которую необходимо создать.
value
NULL или значение переменной окружения.
overwrite
Ненулевое значение позволяет перезаписать существующую переменную; 0 запрещает перезапись.

Библиотека:

libc

Описание:

Функция setenv() устанавливает переменную окружения name в значение value. Если переменная не существует, то она создается; если name существует и overwrite ненулевое, старое значение будет перезаписано значением value.


Caution: Эта функция не освобождает память. Если надо изменить значение существующей переменной окружения, следует использовать putenv().

Копии указанного имени и значения value переносяться в окружение.

Если значение value равно NULL, переменная окружения name удаляется из окружения.


Note: Значение глобального указателя environ может быть изменено при вызове функции setenv().

Имена переменных окружения чувствительны к регистру.

Возвращаемое значение:

0
Успешное завершение.
≠0
Ошибка. Код ошибки записан в errno.

Коды ошибок:

ENOMEM
Недостаточно памяти для создания новой переменной окружения.

Примеры:

Изменение строки, ассоциированной с переменной окружения INCLUDE, и её вывод:

#include <stdio.h>
#include <stdlib.h>
int main( void )
{
char *path;
if ( setenv( "INCLUDE", "/usr/nto/include:/home/fred/include", 1 ) == 0 )
{
if ( (path = getenv( "INCLUDE" )) != NULL )
{
printf( "INCLUDE=%s\n", path );
}
}
return (EXIT_SUCCESS);
}

Классификация:

POSIX 1003.1

Безопасность использования
Точка остановки потока
Нет
Обработчик прерываний
Нет
Обработчик сигналов
Нет
В потоке
Нет

Предостережения:

Функция setenv() управляет окружением, на которое указывает глобальная переменная environ.

Тематические ссылки:

clearenv(), errno, execl(), execle(), execlp(), execlpe(), execv(), execve(), execvp(), execvpe(), getenv(), putenv(), searchenv(), spawn(), spawnl(), spawnle(), spawnlp(), spawnlpe(), spawnp(), spawnv(), spawnve(), spawnvp(), spawnvpe(), system(), unsetenv()




Предыдущий раздел: Описание API системной библиотеки