_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. Для получения дополнительной информации см. Примеры вызовов неуправляемого кода.