Condividi tramite


_putenv_s, _wputenv_s

Creazione, modifica, o rimuovere le variabili di ambiente.Queste sono versioni di _putenv, _wputenv ma presentano miglioramenti della sicurezza, come descritto in Funzionalità di sicurezza in CRT.

Nota importanteImportante

Questa API non può essere utilizzato nelle applicazioni eseguite in Windows Runtime.Per ulteriori informazioni, vedere Funzioni CRT non supportate con /ZW.

errno_t _putenv_s(
   const char *name,
   const char *value 
);
errno_t _wputenv_s(
   const wchar_t *name,
   const wchar_t *value
);

Parametri

  • name
    Il nome della variabile di ambiente.

  • value
    Il valore per impostare la variabile di ambiente su.

Valore restituito

Restituisce 0 se l'operazione riesce, o un codice di errore.

Condizioni di errore

name

value

Valore restituito

NULL

any

EINVAL

any

NULL

EINVAL

Se una delle condizioni di errore si verifica, esse richiamano un gestore non valido di parametro, come descritto in Convalida dei parametri.Se all'esecuzione è permesso continuare, queste funzioni restituiscono EINVAL e impostano errno a EINVAL.

Note

La funzione di _putenv_s aggiunte nuove variabili di ambiente o modificare i valori delle variabili di ambiente esistenti.Le variabili di ambiente definiti l'ambiente in cui un processo esegue, ad esempio il percorso di ricerca predefinito per librerie siano collegati con un programma)._wputenv_s è una versione a caratteri estesi di _putenv_s; l'argomento envstring in _wputenv_s è una stringa di caratteri estesi.

Mapping di routine a Testo generico

TCHAR.H routine

_UNICODE & _MBCS non definiti

_MBCS definito

_UNICODE definito

_tputenv_s

_putenv_s

_putenv_s

_wputenv_s

name è il nome della variabile di ambiente da aggiungere o modificato e value è il valore della variabile.Se name è già parte dell'ambiente, il valore viene sostituito da value; in caso contrario, la nuova variabile di name e il relativo value vengono aggiunti all'ambiente.È possibile rimuovere una variabile di ambiente specificando una stringa vuota (ovvero "") per value.

_putenv_s e _wputenv_s influiscono unicamente sull'ambiente che è locale al processo corrente; non è possibile utilizzarli per la modifica dell'ambiente livello di comando.Queste funzioni vengono eseguiti solo le strutture di dati che sono accessibili alla libreria di runtime e non sull'ambiente "segmento" che il sistema operativo crea per un processo.Quando il processo corrente termina, l'ambiente viene ripristinato il livello del processo chiamante, che nella maggior parte dei casi è il livello del sistema operativo.Tuttavia, l'ambiente modificato può essere passato a tutti i nuovi processi creati da _spawn, da _exec, o da systeme i nuovi processi ottengono i nuovi elementi aggiunti da _putenv_s e da _wputenv_s.

Non modificare direttamente una voce dell'ambiente; in alternativa, utilizzare _putenv_s o _wputenv_s per modificarlo.In particolare, direttamente liberare gli elementi della matrice globale di _environ[] può causare la memoria non valida a essere corretto.

getenv e _putenv_s utilizzano la variabile globale _environ per accedere alla tabella dell'ambiente; _wgetenv e _wputenv_s utilizzano _wenviron._putenv_s e _wputenv_s possono modificare il valore di _environ e di _wenvirone pertanto invalidano l'argomento di envp a main e l'argomento di _wenvp a wmain.Di conseguenza, è consigliabile utilizzare _environ o _wenviron per accedere alle informazioni sull'ambiente.Per ulteriori informazioni sulla relazione tra _putenv_s e _wputenv_s e variabili globali, vedere _environ, _wenviron.

[!NOTA]

I gruppi di _getenv_s e di _putenv_s di funzioni non sono thread-safe._getenv_s potrebbe restituire un puntatore di stringa mentre _putenv_s sta modificando la stringa e pertanto errori casuali di seguito.Assicurarsi che le chiamate alle funzioni siano sincronizzate.

Requisiti

Routine

Intestazione obbligatoria

_putenv_s

<stdlib.h>

_wputenv_s

<stdlib.h> o <wchar.h>

Per informazioni aggiuntive di compatibilità, vedere Compatibilità.

Esempio

Per un esempio che illustra come utilizzare _putenv_s, vedere getenv_s, _wgetenv_s.

Equivalente .NET Framework

Non applicabile. Per chiamare la funzione standard C, utilizzare PInvoke. Per ulteriori informazioni, vedere Esempi di platform invoke.

Vedere anche

Riferimenti

Processo e controllo ambiente

getenv, _wgetenv

_searchenv, _wsearchenv