_putenv, _wputenv

Crea, modifica o rimuove variabili di ambiente. Sono disponibili versioni più sicure di queste funzioni; vedere _putenv_s, _wputenv_s.

Importante

Non è possibile usare questa API nelle applicazioni eseguite in Windows Runtime. Per altre informazioni, vedere Funzioni CRT non supportate nelle app della piattaforma UWP (Universal Windows Platform).

Sintassi

int _putenv(
   const char *envstring
);
int _wputenv(
   const wchar_t *envstring
);

Parametri

envstring
Definizione della stringa di ambiente.

Valore restituito

Se ha esito positivo, le funzioni restituiscono 0 o -1 se si verifica un errore.

Osservazioni:

La funzione _putenv aggiunge nuove variabili di ambiente o modifica i valori delle variabili di ambiente esistente. Le variabili di ambiente definiscono l'ambiente in cui viene eseguito un processo (ad esempio, il percorso di ricerca predefinito per le librerie da collegare a un programma). _wputenv è una versione a caratteri wide di _putenv; l'argomento envstring in _wputenv è una stringa di caratteri wide.

Per impostazione predefinita, lo stato globale di questa funzione è limitato all'applicazione. Per modificare questo comportamento, vedere Stato globale in CRT.

Mapping di routine di testo generico

Tchar.h Routine _UNICODE and _MBCS non definito _MBCS Definito _UNICODE Definito
_tputenv _putenv _putenv _wputenv

L'argomento envstring deve essere un puntatore a una stringa nel formato varname=value_string, dove varname è il nome della variabile di ambiente da aggiungere o modificare e value_string è il valore della variabile. Se varname è già parte dell'ambiente, il valore viene sostituito da value_string. In caso contrario, la nuova variabile varname e il relativo valore value_string vengono aggiunti all'ambiente. È possibile rimuovere una variabile dall'ambiente specificando un oggetto vuoto value_stringo, in altre parole, specificando solo varname=.

_putenv e _wputenv influiscono solo sull'ambiente locale per il processo corrente. Non è possibile usarli per modificare l'ambiente a livello di comando. Ovvero, queste funzioni operano solo sulle strutture di dati accessibili alla libreria di runtime. Non operano sul segmento di ambiente creato per un processo dal sistema operativo. Al termine del processo corrente, l'ambiente viene ripristinato al livello del processo chiamante, ovvero 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, _exec oppure da system e questi nuovi processi ottengono gli eventuali nuovi elementi aggiunti da _putenv e _wputenv.

Non modificare direttamente una voce di ambiente: usare _putenv o _wputenv modificarla. In particolare, liberare direttamente gli elementi della matrice globale _environ[] potrebbe causare un indirizzamento di memoria non valido.

_getenv e _putenv usano la variabile globale _environ per accedere e modificare la tabella dell'ambiente; _wgetenv e _wputenv usano _wenviron. _putenv e _wputenv potrebbe modificare il valore di _environ e _wenviron, invalidando quindi l'argomento _envp in main e l'argomento _wenvp in wmain. Pertanto, è più sicuro usare _environ o _wenviron accedere alle informazioni sull'ambiente. Per altre informazioni sulla relazione di _putenv e con le variabili globali, vedere _environ, _wenviron_wputenv .

Nota

Le famiglie di funzioni _putenv e _getenv non sono thread-safe. _getenv potrebbe restituire un puntatore di stringa mentre _putenv sta modificando la stringa, causando errori casuali. Assicurarsi che le chiamate alle funzioni siano sincronizzate.

Requisiti

Ciclo Intestazione obbligatoria
_putenv <stdlib.h>
_wputenv <stdlib.h> oppure <wchar.h>

Per altre informazioni sulla compatibilità, vedere Compatibility (Compatibilità).

Esempio

Per un esempio di come usare _putenv, vedere getenv, _wgetenv.

Vedi anche

Processo e controllo dell'ambiente
getenv, _wgetenv
_searchenv, _wsearchenv