Udostępnij za pośrednictwem


_putenv, _wputenv

Tworzy, modyfikuje lub usuwa zmienne środowiskowe. Dostępne są bezpieczniejsze wersje tych funkcji; zobacz _putenv_s, _wputenv_s.

Ważne

Tego interfejsu API nie można używać w aplikacjach wykonywanych w środowisko wykonawcze systemu Windows. Aby uzyskać więcej informacji, zobacz Funkcje CRT nieobsługiwane w aplikacjach platforma uniwersalna systemu Windows.

Składnia

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

Parametry

envstring
Definicja ciągu środowiskowego.

Wartość zwracana

Jeśli funkcja zwróci wartość 0, lub -1, jeśli wystąpi błąd.

Uwagi

Funkcja _putenv dodaje nowe zmienne środowiskowe lub modyfikuje wartości istniejących zmiennych środowiskowych. Zmienne środowiskowe definiują środowisko, w którym jest wykonywany proces (na przykład domyślna ścieżka wyszukiwania bibliotek, które mają być połączone z programem). _wputenv jest wersją szerokoznakową ; _putenvargument to envstring_wputenv ciąg o szerokim znaku.

Domyślnie stan globalny tej funkcji jest zakresem aplikacji. Aby zmienić to zachowanie, zobacz Stan globalny w CRT.

Mapowania procedur tekstu ogólnego

Tchar.h Rutynowych _UNICODE and _MBCS niezdefiniowane _MBCS Zdefiniowane _UNICODE Zdefiniowane
_tputenv _putenv _putenv _wputenv

envstring Argument musi być wskaźnikiem do ciągu formularza varname=value_string, gdzie varname jest nazwą zmiennej środowiskowej, która ma zostać dodana lub zmodyfikowana i value_string jest wartością zmiennej. Jeśli varname jest już częścią środowiska, jego wartość jest zastępowana przez value_string; w przeciwnym razie nowa varname zmienna i jej value_string wartość są dodawane do środowiska. Możesz usunąć zmienną ze środowiska, określając pustą value_stringwartość , lub innymi słowy, określając tylko varname=.

_putenv i _wputenv dotyczy tylko środowiska lokalnego bieżącego procesu; nie można ich używać do modyfikowania środowiska na poziomie polecenia. Oznacza to, że te funkcje działają tylko na strukturach danych dostępnych dla biblioteki czasu wykonywania. Nie działają one w segmencie środowiska utworzonym dla procesu przez system operacyjny. Po zakończeniu bieżącego procesu środowisko powraca do poziomu procesu wywołującego (w większości przypadków poziomu systemu operacyjnego). Zmodyfikowane środowisko można jednak przekazać do wszystkich nowych procesów utworzonych przez _spawn, _execlub system, a te nowe procesy uzyskują wszystkie nowe elementy dodane przez _putenv program i _wputenv.

Nie zmieniaj wpisu środowiska bezpośrednio: zamiast tego użyj _putenv polecenia lub _wputenv zmień go. W szczególności bezpośrednie zwalnianie elementów tablicy globalnej _environ[] może prowadzić do rozwiązania nieprawidłowej pamięci.

_getenvi _putenv użyj zmiennej _environ globalnej, aby uzyskać dostęp do tabeli środowiska; _wgetenv i _wputenv użyj ._wenviron _putenv i _wputenv może zmienić wartość _environ i _wenviron, w związku z tym unieważniając _envp argument na main i argument na _wenvpwmain. W związku z tym bezpieczniej jest używać _environ informacji o środowisku lub _wenviron uzyskiwać do nich dostęp. Aby uzyskać więcej informacji na temat relacji zmiennych globalnych _putenv i _wputenv , zobacz _environ, _wenviron.

Uwaga

Rodziny _putenv funkcji i _getenv nie są bezpieczne wątkowo. _getenv może zwrócić wskaźnik ciągu podczas _putenv modyfikowania ciągu, powodując losowe błędy. Upewnij się, że wywołania tych funkcji są zsynchronizowane.

Wymagania

Procedura Wymagany nagłówek
_putenv <stdlib.h>
_wputenv <stdlib.h> lub <wchar.h>

Aby uzyskać więcej informacji o zgodności, zobacz Zgodność.

Przykład

Aby zapoznać się z przykładem używania programu _putenv, zobacz getenv, _wgetenv.

Zobacz też

Kontrola procesu i środowiska
getenv, _wgetenv
_searchenv, _wsearchenv