Udostępnij przez


_putenv_s, _wputenv_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.

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ść errnoEINVAL.

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_sargument 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 procedur tekstu ogólnego

TCHAR.H Rutynowych _UNICODE i _MBCS niezdefiniowane _MBCS Zdefiniowane _UNICODE Zdefiniowane
_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 _spawnprogram , _execlub 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.

getenvi _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 _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 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_sprogramu , zobacz getenv_s, _wgetenv_s.

Zobacz też

Kontrola procesu i środowiska
getenv, _wgetenv
_searchenv, _wsearchenv