Nota
L-aċċess għal din il-paġna jeħtieġ l-awtorizzazzjoni. Tista’ tipprova tidħol jew tibdel id-direttorji.
L-aċċess għal din il-paġna jeħtieġ l-awtorizzazzjoni. Tista’ tipprova tibdel id-direttorji.
Creates, modifies, or removes environment variables. More secure versions of these functions are available; see _putenv_s, _wputenv_s.
Important
This API cannot be used in applications that execute in the Windows Runtime. For more information, see CRT functions not supported in Universal Windows Platform apps.
Syntax
int _putenv(
const char *envstring
);
int _wputenv(
const wchar_t *envstring
);
Parameters
envstring
Environment-string definition.
Return value
The functions return 0 if successful, or -1 if there's an error.
Remarks
The _putenv function adds new environment variables or modifies the values of existing environment variables. Environment variables define the environment in which a process executes (for example, the default search path for libraries to be linked with a program). _wputenv is a wide-character version of _putenv; the envstring argument to _wputenv is a wide-character string.
By default, this function's global state is scoped to the application. To change this behavior, see Global state in the CRT.
Generic-text routine mappings
Tchar.h routine |
_UNICODE and _MBCS not defined |
_MBCS defined |
_UNICODE defined |
|---|---|---|---|
_tputenv |
_putenv |
_putenv |
_wputenv |
The envstring argument must be a pointer to a string of the form varname=value_string, where varname is the name of the environment variable to be added or modified and value_string is the variable's value. If varname is already part of the environment, its value is replaced by value_string; otherwise, the new varname variable and its value_string value are added to the environment. You can remove a variable from the environment by specifying an empty value_string, or in other words, by specifying only varname=.
_putenv and _wputenv affect only the environment that is local to the current process; you can't use them to modify the command-level environment. That is, these functions operate only on data structures accessible to the run-time library. They don't operate on the environment segment created for a process by the operating system. When the current process terminates, the environment reverts to the level of the calling process (in most cases, the operating-system level). However, the modified environment can be passed to any new processes created by _spawn, _exec, or system, and these new processes get any new items added by _putenv and _wputenv.
Don't change an environment entry directly: instead, use _putenv or _wputenv to change it. In particular, direct freeing elements of the _environ[] global array might lead to invalid memory being addressed.
_getenv and _putenv use the global variable _environ to access the environment table; _wgetenv and _wputenv use _wenviron. _putenv and _wputenv might change the value of _environ and _wenviron, thus invalidating the _envp argument to main and the _wenvp argument to wmain. Therefore, it's safer to use _environ or _wenviron to access the environment information. For more information about the relation of _putenv and _wputenv to global variables, see _environ, _wenviron.
Note
The _putenv and _getenv families of functions are not thread-safe. _getenv could return a string pointer while _putenv is modifying the string, causing random failures. Make sure that calls to these functions are synchronized.
Requirements
| Routine | Required header |
|---|---|
_putenv |
<stdlib.h> |
_wputenv |
<stdlib.h> or <wchar.h> |
For more compatibility information, see Compatibility.
Example
For a sample of how to use _putenv, see getenv, _wgetenv.
See also
Process and environment control
getenv, _wgetenv
_searchenv, _wsearchenv