_dupenv_s, _wdupenv_s
Ottenere un valore dall'ambiente corrente.
Importante |
---|
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