_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.
Importante |
---|
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.