Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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_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 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 _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 _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_sprogramu , zobacz getenv_s, _wgetenv_s.
Zobacz też
Kontrola procesu i środowiska
getenv, _wgetenv
_searchenv, _wsearchenv