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