Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Создает, изменяет или удаляет переменные среды. Доступны более безопасные версии этих функций; see _putenv_s, _wputenv_s.
Внимание
Этот API нельзя использовать в приложениях, выполняемых в среде выполнения Windows. Дополнительные сведения: Функции CRT, которые не поддерживаются в приложениях универсальной платформы Windows.
Синтаксис
int _putenv(
const char *envstring
);
int _wputenv(
const wchar_t *envstring
);
Параметры
envstring
Определение строки среды.
Возвращаемое значение
Функции возвращают значение 0 в случае успешного выполнения или -1, если возникает ошибка.
Замечания
Функция _putenv добавляет новые переменные среды или изменяет значения существующих переменных среды. Переменные среды определяют среду, в которой выполняется процесс (например, путь поиска по умолчанию для библиотек, связываемых с программой). _wputenv — это версия _putenvс расширенными символами; аргумент envstring для _wputenv — строка расширенных символов.
По умолчанию глобальное состояние этой функции ограничивается приложением. Чтобы изменить это поведение, см . статью "Глобальное состояние" в CRT.
Сопоставления подпрограмм универсального текста
Tchar.h рутина |
_UNICODE and _MBCS не определен |
_MBCS Определенные |
_UNICODE Определенные |
|---|---|---|---|
_tputenv |
_putenv |
_putenv |
_wputenv |
Аргумент envstring должен быть указателем на строку вида varname=value_string, где varname — имя добавляемой или изменяемой переменной среды, а value_string — значение переменной. Если переменная varname уже существует в среде, ее значение заменяется значением value_string; в противном случае в эту среду добавляются новая переменная varname и ее значение value_string. Переменную можно удалить из среды, указав пустой value_stringили другими словами, указав только varname=.
_putenv и _wputenv влияет только на локальную среду текущего процесса. Их нельзя использовать для изменения среды уровня команд. То есть эти функции работают только с структурами данных, доступными для библиотеки времени выполнения. Они не работают с сегментом среды, созданным для процесса операционной системой. При завершении текущего процесса среда возвращается на уровень вызывающего процесса (в большинстве случаев — на уровень операционной системы). Однако измененную среду можно передать любым новым процессам, создаваемым функцией _spawn, _exec или system, и эти новые процессы получают все новые элементы, добавленные функциями _putenv и _wputenv.
Не изменяйте запись среды напрямую: используйте _putenv или _wputenv измените ее. В частности, непосредственное освобождение элементов глобального массива _environ[] может привести к адресации недопустимой памяти.
Функции _getenv и _putenv используют глобальную переменную _environ для доступа к таблице среды; функции _wgetenv и _wputenv используют таблицу _wenviron. _putenv и _wputenv может изменить значение _environ и _wenviron, таким образом, недопустимость аргумента _envp main и аргумента _wenvp wmain. Поэтому безопаснее использовать _environ или _wenviron получать доступ к информации о среде. Дополнительные сведения о связи и глобальных _putenv переменных см. в разделе _environ. _wenviron_wputenv
Примечание.
Семейства функций _putenv и _getenv не являются потокобезопасными. Функция _getenv может вернуть указатель строки, в то время как функция _putenv изменяет строку, вызывая случайные сбои. Убедитесь, что вызовы этих функций синхронизированы.
Требования
| Маршрут | Обязательный заголовок |
|---|---|
_putenv |
<stdlib.h> |
_wputenv |
<stdlib.h> или <wchar.h> |
Дополнительные сведения о совместимости см. в разделе Совместимость.
Пример
Пример использования _putenvсм. в разделе . _wgetenvgetenv
См. также
Управление процессами и средой
getenv, _wgetenv
_searchenv, _wsearchenv