Функция
Добавляет строку символов в текущее описание среды.
Синтаксис
#include<stdlib.h>
int putenv(const char *name);
Прототип
stdlib.h
Описание
Функция putenv получает строку name и добавляет ее к описанию среды текущего процесса. Например:
putenv("PATH=C:\\TC");
Функция putenv можно также использовать для модификации или удаления уже существующих переменных среды текущего процесса. Для удаления надо просто добавить пустую переменную (к примеру "MYVAR=").
Функция putenv изменяет среду только текущего процесса. При завершении процесса восстанавливается исходная среда.
Замечание. Строка, передаваемая putenv должна быть глобальной или статической. В случае, если строка была локальной или динамической, то освобождение памяти приведет к непредсказуемому результату.
Возвращаемое значение
При успешном завершении putenv возвращает 0, при ошибке -1.
Переносимость
Функция putenv доступна в системах UNIX.
Пример
#include<stdio.h>
#include<stdlib.h>
#include<alloc.h>
#include<string.h>
#include<dos.h>
int main(void)
{
char *path, *ptr;
int i = 0;
/* получить значение переменной среды PATH */
ptr = getenv("PATH");
/* создать новое значение */
path = malloc(strlen(ptr)+15);
strcpy(path,"PATH=");
strcat(path,ptr);
strcat(path,";c:\\temp");
/* занести его в переменную */
putenv(path);
while(environ[i])
printf("%s\n",environ[i++]);
return 0;
}