_putenv_s, _wputenv_s

Tworzy, modyfikuje lub usuwa zmienne środowiskowe.Są to wersje _putenv, _wputenv , ale mają rozszerzenia zabezpieczeń, zgodnie z opisem w Funkcje zabezpieczeń w CRT.

Ważna uwagaWażne

Ten interfejs API nie można używać w aplikacji, których wykonywanie w Środowisko wykonawcze systemu Windows.Aby uzyskać więcej informacji, zobacz CRT funkcje nie obsługiwane przez /ZW.

errno_t _putenv_s(
   const char *name,
   const char *value 
);
errno_t _wputenv_s(
   const wchar_t *name,
   const wchar_t *value
);

Parametry

  • name
    Nazwa zmiennej środowiskowej.

  • value
    Wartość, aby ustawić wartość zmiennej środowiskowej.

Wartość zwracana

Zwraca wartość 0, jeśli kończy się pomyślnie, lub kod błędu.

Warunki błędów

name

value

Zwracana wartość

NULL

wszelkie

EINVAL

wszelkie

NULL

EINVAL

Jeśli jeden z warunków błąd wystąpi, te funkcje wywołać funkcję obsługi nieprawidłowy parametr, zgodnie z opisem w Sprawdzanie poprawności parametru.Jeśli wykonanie może kontynuować, funkcje te zwracają EINVAL i errno do EINVAL.

Uwagi

_putenv_s Funkcja dodaje nowe zmienne środowiskowe lub modyfikuje wartości istniejących zmiennych środowiskowych.Zmienne środowiskowe definiują środowisko, w którym proces wykona (na przykład domyślna ścieżka biblioteki muszą być połączone z programem)._wputenv_sjest ona szerokich znaków do _putenv_s; envstring argument _wputenv_s jest ciągiem szerokich znaków.

Tekst rodzajowy rutynowych mapowania

TCHAR.Rozpoczęto wykonywanie procedury h

_UNICODE & _MBCS nie zdefiniowany

_MBCS, definicja

_UNICODE, definicja

_tputenv_s

_putenv_s

_putenv_s

_wputenv_s

namejest nazwą zmiennej środowiskowej, które mają być dodane lub zmodyfikowane i value jest wartość zmiennej.Jeśli name jest już częścią środowiska naturalnego, jego wartość jest zastąpiony przez value; w przeciwnym razie nowy name zmienną i jej value są dodawane do środowiska naturalnego.Zmienną można usunąć ze środowiska, określając ciąg pusty (to znaczy "") dla value.

_putenv_si _wputenv_s wpływu na środowisko, która jest lokalnym dla bieżącego procesu; Nie można używać ich do modyfikowania środowiska poziomie polecenia.Funkcje te działają tylko na struktur danych, które są dostępne dla biblioteki uruchomieniowej, a nie na środowisko naturalne "segment", który system operacyjny tworzy dla procesu.Gdy bieżący proces kończy działanie, środowiska naturalnego zostanie przywrócona do poziomu procesu wywołującego, które w większości przypadków jest to poziom systemu operacyjnego.Jednak środowiska zmodyfikowanych mogą być przekazywane do nowych procesów, które są tworzone przez _spawn, _exec, lub system, i tych nowych procesów uzyskać nowe elementy, które są dodawane przez _putenv_s i _wputenv_s.

Nie należy zmieniać wpis środowiska bezpośrednio; Zamiast tego należy użyć _putenv_s lub _wputenv_s to zmienić.W szczególności, bezpośrednio zwalnianiu elementy _environ[] globalnej tablicy może spowodować nieprawidłowe pamięci, należy się zająć.

getenvi _putenv_s używać tej zmiennej globalnej _environ dostępu do tabeli środowiska; _wgetenvand _wputenv_s use _wenviron._putenv_si _wputenv_s może zmienić wartość _environ i _wenviron, a tym samym unieważnienie envp argument main i _wenvp argument wmain.Dlatego też bezpieczniejsze w użyciu _environ lub _wenviron do dostępu do informacji o środowisku.Aby uzyskać więcej informacji o związku między _putenv_s i _wputenv_s do zmiennych globalnych, zobacz _environ, _wenviron.

[!UWAGA]

_putenv_s i _getenv_s rodziny funkcji nie są wątków._getenv_smógł zwrócić wskaźnik ciąg podczas _putenv_s jest modyfikowanie ciąg i tym samym być przyczyną błędów losowych.Upewnij się, że wywołania tych funkcji są synchronizowane.

Wymagania

Rozpoczęto wykonywanie procedury

Wymaganego nagłówka

_putenv_s

<stdlib.h>

_wputenv_s

<stdlib.h> lub <wchar.h>

Aby uzyskać dodatkowe informacje o zgodności, zobacz Zgodność.

Przykład

Przykładowy pokazuje, jak użyć _putenv_s, zobacz getenv_s, _wgetenv_s.

Odpowiednik w programie .NET Framework

Nie dotyczy. Aby wywoływać funkcji C standardowej, należy użyć PInvoke. Aby uzyskać więcej informacji, zobacz Przykłady wywołań platformy.

Zobacz też

Informacje

Procedury kontroli środowiska

getenv, _wgetenv

_searchenv, _wsearchenv