_putenv_s, _wputenv_s

Создать, изменить или удалить переменные среды.Эти версии _putenv, _wputenv, но имеет расширения безопасности, как описано в разделе Средства безопасности в CRT.

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

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

errno_t _putenv_s(
   const char *name,
   const char *value 
);
errno_t _wputenv_s(
   const wchar_t *name,
   const wchar_t *value
);

Параметры

  • name
    Имя переменной среды.

  • value
    Значение для задания переменной среды в.

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

Возвращает 0 в случае успеха или код ошибки.

Условия возникновения ошибки

name

value

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

NULL

любое значение

EINVAL

любое значение

NULL

EINVAL

Если одно из условий ошибки возникает, то эти функции вызывается обработчик недопустимого параметра, как описано в разделе Проверка параметров.Если выполнение может быть продолжено, то функция возвращает EINVAL и устанавливает errno в EINVAL.

Заметки

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

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

Функция TCHAR.H

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

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

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

_tputenv_s

_putenv_s

_putenv_s

_wputenv_s

name - имя переменной среды, добавляемый или измененные и значение переменной value.Если класс name уже является частью среды, его значение заменяется на value; в противном случае новую переменную name, а value добавляются в эту среду.Можно удалить переменную среды, указав пустую строку (""), то есть для value.

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

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

getenv и _putenv_s используют глобальную переменную _environ для доступа к таблице среды; _wgetenv и _wputenv_s используется _wenviron._putenv_s и _wputenv_s могут изменить значение _environ и _wenviron, поэтому для аргумента envp значение main, а аргумент _wenvp равным wmain.Следовательно, это безопаснее использовать _environ или _wenviron, чтобы получить информацию о среде.Дополнительные сведения о связи _putenv_s и _wputenv_s к глобальным переменным см. в разделе _environ, _wenviron.

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

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

Требования

Функция

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

_putenv_s

<stdlib.h>

_wputenv_s

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

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

Пример

Пример, показывающий, как использовать _putenv_s, см. в разделе getenv_s, _wgetenv_s.

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

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

См. также

Ссылки

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

getenv, _wgetenv

_searchenv, _wsearchenv