Udostępnij za pośrednictwem


_putenv, _wputenv

Tworzy, modyfikuje lub usuwa zmienne środowiskowe.Bardziej bezpieczne wersje tych funkcji są dostępne w _putenv_s, _wputenv_s.

Ważna uwagaWażne

Tego API nie można używać w aplikacjach korzystających ze środowiska wykonawczego Windows.Aby uzyskać więcej informacji, zobacz Funkcje CRT nieobsługiwane przez /ZW.

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

Parametry

  • envstring
    Definicja ciągu środowiska.

Wartość zwracana

Zwraca 0, jeśli kończy się pomyślnie lub -1 w przypadku błędu.

Uwagi

_putenv funkcja dodaje nowe zmienne środowiskowe lub modyfikuje wartości istniejących zmiennych środowiskowych.Zmienne środowiskowe definiują środowisko, w którym proces działa (na przykład, domyślna ścieżka wyszukiwania dla bibliotek musi być połączona z programem)._wputenv to wersja znaku dwubajtowego _putenv; argument envstring do _wputenv to ciąg znaku dwubajtowego.

Rutynowe mapowania zwykłego tekstu

Procedura Tchar.h

_UNICODE i _MBCS nie zdefiniowany

_MBCS zdefiniowano

_UNICODE zdefiniowany

_tputenv

_putenv

_putenv

_wputenv

envstring Argument musi być wskaźnikiem ciągu w postaci varname=string, gdzie varname jest nazwą zmiennej środowiskowej, która ma być dodane lub zmodyfikowane i string jest wartością zmiennej.Jeśli varname jest już częścią środowiska, jej wartość jest zastępowana przez string; w przeciwnym wypadku nowa zmienna varname i jej wartość string są dodawane do środowiska.Można usunąć zmienną ze środowiska przez określenie pustego string — innymi słowy, określając wyłącznie varname=.

_putenv i _wputenv wpływają na środowisko, które jest lokalne dla bieżącego procesu; nie można ich używać do modyfikowania środowiska na poziomie polecenia.Oznacza to, że funkcje te działają tylko na dostępie do biblioteki wykonawczej struktury danych, a nie na segmencie środowiska dla procesu utworzonego przez system operacyjny.Gdy bieżący proces kończy działanie, środowiska powraca do poziomu procesu wywołującego (w większości przypadków, poziom systemu operacyjnego).Jednak zmodyfikowane środowisko może być przekazywane do dowolnego nowego procesu utworzonego przez _spawn, _exec lub system, a te nowe procesy uzyskują wszystkie nowe elementy dodane przez _putenv i _wputenv.

Nie zmieniaj bezpośrednio wpisu środowiska: użyj w zamian _putenv lub _wputenv, aby to zmienić.W szczególności, bezpośrednie zwalnianie elementów globalnej tablicy _environ[] może doprowadzić do nieprawidłowej pamięci, której dotyczą.

getenv i _putenv używają zmiennej globalnej _environ, aby uzyskać dostęp do tabeli środowiska; _wgetenv i _wputenv używają _wenviron._putenv i _wputenv mogą zmienić wartość _environ i _wenviron, tym samym unieważniając argument _envp jako main i _wenvp argument jako wmain.Dlatego jest bezpieczniejsze w użyciu _environ lub _wenviron do dostępu do informacji o środowisku.Aby uzyskać więcej informacji na temat relacji _putenv i _wputenv ze zmiennymi globalnymi, zobacz _environ _wenviron.

[!UWAGA]

_putenv i _getenv rodziny funkcji nie są bezpieczne od wątków._getenv może zwracać wskaźnik ciągu podczas gdy _putenv modyfikuje ciąg, powodując błędy losowe.Upewnij się, że wywołania tych funkcji są synchronizowane.

Wymagania

Procedura

Wymagany nagłówek

_putenv

<stdlib.h>

_wputenv

<stdlib.h> lub <wchar.h>

Aby uzyskać więcej informacji na temat zgodności – zobacz: Zgodność.

Przykład

Aby uzyskać informacje na temat przykładowego sposobu użycia _putenv, zobacz getenv, _wgetenv.

Odpowiednik w programie .NET Framework

Nie dotyczy. Aby wywołać standardową funkcję C, należy użyć PInvoke. Aby uzyskać więcej informacji, zobacz Przykłady wywoływania platformy.

Zobacz też

Informacje

Procedury kontroli środowiska

getenv, _wgetenv

_searchenv, _wsearchenv