_dupenv_s, _wdupenv_s
Pobieranie wartości z bieżącego środowiska.
Ważne |
---|
Ten interfejs API nie można używać w aplikacji, których wykonywanie w czasie wykonywania systemu Windows.Aby uzyskać więcej informacji, zobacz CRT funkcje nie obsługiwane przez /ZW. |
errno_t _dupenv_s(
char **buffer,
size_t *numberOfElements,
const char *varname
);
errno_t _wdupenv_s(
wchar_t **buffer,
size_t *numberOfElements,
const wchar_t *varname
);
Parametry
buffer
Bufor do przechowywania wartość zmiennej.numberOfElements
Size of buffer.varname
Nazwa zmiennej środowiskowej.
Wartość zwracana
Ustawić zero na sukces, kod błędu w przypadku awarii.
Te funkcje sprawdzania poprawności ich parametrów; Jeśli buffer lub varname jest NULL, program obsługi nieprawidłowy parametr jest wywoływana, zgodnie z opisem w Sprawdzanie poprawności parametru.Jeśli wykonanie może kontynuować, zestaw funkcji errno do EINVAL i powrót EINVAL.
Jeśli te funkcje nie może przydzielić wystarczającej ilości pamięci, określają buffer do NULL i numberOfElements 0 i return ENOMEM.
Uwagi
_dupenv_s Funkcja przeszukuje listę zmiennych środowiskowych dla varname.Jeśli zmienna zostanie znaleziony, _dupenv_s alokuje bufor i kopiuje wartość zmiennej do bufora.Adres buforu i długość są zwracane w buffer i numberOfElements.Przydzielając bufor, _dupenv_s bardziej wygodną alternatywą dla getenv_s, _wgetenv_s.
[!UWAGA]
Program wywołujący obowiązek zwolnić pamięć, wywołując free.
Jeśli zmienna nie zostanie znaleziony, następnie buffer jest ustawiona na NULL, numberOfElements jest ustawiona na 0, a wartość zwracana jest 0, ponieważ taka sytuacja nie jest uważane za warunek błędu.
Jeśli nie jesteś zainteresowany rozmiar buforu można przekazać NULL dla numberOfElements.
_dupenv_snie jest uwzględniana wielkość liter, w systemie operacyjnym Windows._dupenv_skopiowanie środowiska wskazywanej przez zmienna globalna _environ aby uzyskiwać dostęp do środowiska.Patrz uwagi w getenv_s, _wgetenv_s omówienie _environ.
Wartość w buffer jest kopią wartości zmiennej środowiskowej; modyfikowania go nie ma wpływu na środowisko naturalne.Użycie _putenv_s, _wputenv_s funkcji, aby zmodyfikować wartość zmiennej środowiskowej.
_wdupenv_sjest ona szerokich znaków do _dupenv_s; argumenty _wdupenv_s są ciągami szerokich znaków._wenviron Zmienna globalna jest ona szerokich znaków do _environ.Patrz uwagi w getenv_s, _wgetenv_s więcej informacji o _wenviron.
Tekst rodzajowy rutynowych mapowania
TCHAR.Rozpoczęto wykonywanie procedury h |
_UNICODE & _MBCS nie zdefiniowany |
_MBCS, definicja |
_UNICODE, definicja |
---|---|---|---|
_tdupenv_s |
_dupenv_s |
_dupenv_s |
_wdupenv_s |
Wymagania
Rozpoczęto wykonywanie procedury |
Wymaganego nagłówka |
---|---|
_dupenv_s |
<stdlib.h> |
_wdupenv_s |
<stdlib.h> lub <wchar.h> |
Aby uzyskać dodatkowe informacje o zgodności, zobacz zgodności we wprowadzeniu.
Przykład
// crt_dupenv_s.c
#include <stdlib.h>
int main( void )
{
char *pValue;
size_t len;
errno_t err = _dupenv_s( &pValue, &len, "pathext" );
if ( err ) return -1;
printf( "pathext = %s\n", pValue );
free( pValue );
err = _dupenv_s( &pValue, &len, "nonexistentvariable" );
if ( err ) return -1;
printf( "nonexistentvariable = %s\n", pValue );
free( pValue ); // It's OK to call free with NULL
}
Przykładowe dane wyjściowe
pathext = .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.pl
nonexistentvariable = (null)
Odpowiednik w programie .NET Framework
System::Environment::GetEnvironmentVariable