_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ż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 Zmienna, _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 Platforma wywołać przykłady.