Udostępnij za pośrednictwem


_dupenv_s, _wdupenv_s

Pobieranie wartości z bieżącego środowiska.

Ważna uwagaWaż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

Zobacz też

Informacje

Proces i kontroli środowiska

Stałe środowiska

_dupenv_s_dbg, _wdupenv_s_dbg

getenv_s, _wgetenv_s

_putenv_s, _wputenv_s