Поделиться через


_putenv, _wputenv

Создать, изменить или удалить переменные среды.Существуют более безопасные версии этих функций; см. раздел _putenv_s, _wputenv_s.

Важное примечаниеВажно

Этот API нельзя использовать в приложениях, запускаемых в среде выполнения Windows.Дополнительные сведения см. в разделе Функции CRT не поддерживаются при /ZW.

int _putenv(
   const char *envstring 
);
int _wputenv(
   const wchar_t *envstring 
);

Параметры

  • envstring
    Определение Среда-строки.

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

Возвращает 0 в случае успешного выполнения) или – 1 в случае ошибки.

Заметки

Функция _putenv добавляет новые переменные среды или изменить существующую значений переменных среды.Переменные среды определяют среду, в которой выполняется процесс (например, путь поиска по умолчанию для библиотек, связываемый с программой)._wputenv двухбайтовая версия _putenv; аргумент envstring для _wputenv - строка двухбайтовых знаков.

Универсальное текстовое сопоставление функций

Подпрограмма TCHAR.H

Не указаны _UNICODE и _MBCS

определенные _MBCS

Определение _UNICODE

_tputenv

_putenv

_putenv

_wputenv

Аргумент envstring должен быть указателем на строку в форме varname=string, где varname - имя переменной среды, добавляемый или измененные и значение переменной string.Если класс varname уже является частью среды, его значение заменяется на string; в противном случае новую переменную varname, а значение string добавляются в эту среду.Можно удалить переменную среды, указав пустой string (другими словами, определение только varname=.

_putenv и _wputenv относятся только среды с локальным текущий процесс; нельзя использовать их для изменения среды команда- уровня.Таким образом, эти функции работают только в структурах данных, доступных в библиотеке времени выполнения, а не в сегменте среды, созданном для процесса операционной системой.При завершении текущего процесса среда отменить к уровню вызывающего процесса (в большинстве случаев уровня операционной системы).Однако измененную среду можно передать ко всем новым процессам созданным _spawn, _exec или system, и эти новые процессы получают все новые элементы добавлен _putenv и _wputenv.

Не изменяйте запись среды напрямую. вместо этого используйте _putenv или _wputenv, чтобы изменить его.В частности, освобождая непосредственно элементы массива _environ[] глобального могут приводить к недопустимой, обращаннсяыми памяти.

getenv и _putenv используют глобальную переменную _environ для доступа к таблице среды; _wgetenv и _wputenv используется _wenviron._putenv и _wputenv может изменить значение _environ и _wenviron, таким образом invalidating аргумент _envp к main и аргумент wenvp _ wmain.Следовательно, это безопаснее использовать _environ или _wenviron, чтобы получить информацию о среде.Дополнительные сведения о связи _putenv и _wputenv к глобальным переменным см. в разделе _environ, _wenviron.

ПримечаниеПримечание

Семейство функций _putenv и _getenv не является потокобезопасным._getenv может вернуть указатель строки при _putenv изменяет строку, вызывая случайным сбоям.Убедитесь, что вызов этих функций синхронизированы.

Требования

Функция

Требуемый заголовок

_putenv

<stdlib.h>

_wputenv

<stdlib.h> или <wchar.h>

Дополнительные сведения о совместимости см. в разделе Совместимость во введении.

Пример

Пример использования _putenv см. в разделе getenv, _wgetenv.

Эквивалент в .NET Framework

Неприменимо. Для вызова стандартной функции C используйте PInvoke. Дополнительные сведения см. в разделе Примеры вызовов неуправляемого кода.

См. также

Ссылки

Процесс и управление среды

getenv, _wgetenv

_searchenv, _wsearchenv