_putenv_s
, , _wputenv_s
_tputenv_s
Tworzy, modyfikuje lub usuwa zmienne środowiskowe. Te funkcje to wersje programu _putenv
, _wputenv
które mają ulepszenia zabezpieczeń, zgodnie z opisem w temacie Funkcje zabezpieczeń w narzędziu CRT.
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.
Aby uzyskać informacje _tputenv_s
, zobacz Ogólne mapowania funkcji tekstowych.
Składnia
errno_t _putenv_s(
const char *varname,
const char *value_string
);
errno_t _wputenv_s(
const wchar_t *varname,
const wchar_t *value_string
);
Parametry
varname
Nazwa zmiennej środowiskowej.
value_string
Wartość ustawiania zmiennej środowiskowej na .
Wartość zwracana
Zwraca wartość 0 w przypadku powodzenia lub kod błędu.
Warunki błędu
varname |
value_string |
Wartość zwracana |
---|---|---|
NULL |
dowolny | EINVAL |
dowolny | NULL |
EINVAL |
Jeśli wystąpi jeden z warunków błędu, te funkcje wywołują nieprawidłową procedurę obsługi parametrów zgodnie z opisem w temacie Weryfikacja parametrów. Jeśli wykonanie jest dozwolone do kontynuowania, te funkcje zwracają EINVAL
i ustawiają wartość errno
EINVAL
.
Uwagi
Funkcja _putenv_s
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_s
jest wersją szerokoznakową ; _putenv_s
argument to envstring
_wputenv_s
ciąg o szerokim znaku.
Domyślnie stan globalny tej funkcji jest zakresem aplikacji. Aby zmienić to zachowanie, zobacz Stan globalny w CRT.
Mapowania funkcji tekstu ogólnego
Funkcja w kolumnie tchar.h
jest mapowana na funkcję w innych kolumnach w zależności od zestawu znaków zdefiniowanego w czasie kompilacji.
Funkcja tchar.h |
_UNICODE i _MBCS niezdefiniowane |
_MBCS zdefiniowany |
_UNICODE zdefiniowany |
---|---|---|---|
_tputenv_s |
_putenv_s |
_putenv_s |
_wputenv_s |
varname
to nazwa 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
są dodawane do środowiska. Zmienną ze środowiska można usunąć, określając pusty ciąg (czyli ""
) dla elementu value_string
.
_putenv_s
i _wputenv_s
dotyczy tylko środowiska lokalnego bieżącego procesu; nie można ich używać do modyfikowania środowiska na poziomie polecenia. Te funkcje działają tylko na strukturach danych, które są dostępne dla biblioteki czasu wykonywania, a nie w środowisku "segment", który system operacyjny tworzy dla procesu. Po zakończeniu bieżącego procesu środowisko powróci do poziomu procesu wywołującego, co w większości przypadków jest poziomem systemu operacyjnego. Zmodyfikowane środowisko można jednak przekazać do wszystkich nowych procesów utworzonych przez _spawn
program , _exec
lub system
, a te nowe procesy pobierają wszystkie nowe elementy dodane przez _putenv_s
program i _wputenv_s
.
Nie zmieniaj wpisu środowiska bezpośrednio; zamiast tego użyj polecenia _putenv_s
lub _wputenv_s
, aby go zmienić. W szczególności bezpośrednie zwalnianie elementów tablicy globalnej może spowodować usunięcie nieprawidłowej _environ[]
pamięci.
getenv
i _putenv_s
użyj zmiennej _environ
globalnej, aby uzyskać dostęp do tabeli środowiska; _wgetenv
i _wputenv_s
użyj ._wenviron
_putenv_s
i _wputenv_s
może zmienić wartość _environ
i _wenviron
, a tym samym unieważnić envp
argument na main
i argument na _wenvp
wmain
. 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 i ze zmiennymi globalnymi_putenv_s
, zobacz_environ
, _wenviron
._wputenv_s
Uwaga
Rodziny _putenv_s
funkcji i _getenv_s
nie są bezpieczne wątkowo. _getenv_s
może zwrócić wskaźnik ciągu podczas _putenv_s
modyfikowania ciągu, a tym samym powodować losowe błędy. Upewnij się, że wywołania tych funkcji są zsynchronizowane.
Wymagania
Procedura | Wymagany nagłówek |
---|---|
_putenv_s |
<stdlib.h> |
_wputenv_s |
<stdlib.h> lub <wchar.h> |
Aby uzyskać więcej informacji o zgodności, zobacz Zgodność.
Przykład
Aby zapoznać się z przykładem pokazującym, jak używać _putenv_s
programu , zobacz getenv_s
, _wgetenv_s
.
Zobacz też
Kontrola procesu i środowiska
getenv
, _wgetenv
_searchenv
, _wsearchenv