Condividi tramite


_dupenv_s, _wdupenv_s

Ottenere un valore dall'ambiente corrente.

Nota importanteImportante

Questa API non può essere utilizzata nelle applicazioni che vengono eseguite in Windows Runtime.Per ulteriori informazioni, vedere Funzioni CRT non supportate con /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
);

Parametri

  • buffer
    Buffer per archiviare il valore della variabile.

  • numberOfElements
    Dimensione di buffer.

  • varname
    Nome della variabile di ambiente.

Valore restituito

Su zero positivo, un codice di errore in caso di errore.

Queste funzioni convalidano i parametri; se buffer o varname è NULL, il gestore non valido di parametro viene richiamato come descritto in Convalida dei parametri.Se l'esecuzione è consentita per continuare, errno impostato funzioni a EINVAL e a EINVALrestituita.

Se queste funzioni non possono allocare memoria sufficiente, impostare buffer a NULL e a numberOfElements a 0 e tornare ENOMEM.

Note

La funzione di _dupenv_s trovare l'elenco di variabili di ambiente varname.Se la variabile viene trovata, _dupenv_s alloca un buffer e copia il valore della variabile nel buffer.L'indirizzo e la lunghezza del buffer vengono restituiti in buffer e in numberOfElements.Allocare il buffer stesso, _dupenv_s fornisce un'alternativa più semplice a getenv_s, _wgetenv_s.

[!NOTA]

È responsabilità del programma chiamante liberare la memoria chiamando free.

Se la variabile non viene trovata, quindi buffer è impostato su NULL, numberOfElements è impostato su 0 e il valore restituito è 0 perché questa situazione non viene considerata come una condizione di errore.

se non si desidera la dimensione del buffer è possibile passare NULL per numberOfElements.

_dupenv_s non viene rilevata la distinzione tra maiuscole e minuscole nel sistema operativo Windows._dupenv_s utilizza la copia dell'ambiente fa riferimento la variabile globale _environ per accedere all'ambiente.Vedere le note in getenv_s, _wgetenv_s per una descrizione di _environ.

Il valore in buffer è una copia del valore della variabile di ambiente; modificarlo non ha effetto sull'ambiente.Utilizzare la funzione di _putenv_s, _wputenv_s per modificare il valore di una variabile di ambiente.

_wdupenv_s è una versione a caratteri estesi di _dupenv_s; gli argomenti di _wdupenv_s sono stringhe di caratteri estesi.La variabile globale di _wenviron è una versione a caratteri estesi di _environ.Vedere le note in getenv_s, _wgetenv_s per ulteriori informazioni su _wenviron.

Mapping di routine a Testo generico

TCHAR.H routine

_UNICODE & _MBCS non definiti

_MBCS definito

_UNICODE definito

_tdupenv_s

_dupenv_s

_dupenv_s

_wdupenv_s

Requisiti

Routine

Intestazione obbligatoria

_dupenv_s

<stdlib.h>

_wdupenv_s

<stdlib.h> o <wchar.h>

Per ulteriori informazioni sulla compatibilità, vedere Compatibilità nell'introduzione.

Esempio

// 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
}

Esempio di output

pathext = .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.pl
nonexistentvariable = (null)

Equivalente .NET Framework

System::Environment::GetEnvironmentVariable

Vedere anche

Riferimenti

Processo e controllo ambiente

Costanti ambientali

_dupenv_s_dbg, _wdupenv_s_dbg

getenv_s, _wgetenv_s

_putenv_s, _wputenv_s