_putenv, _wputenv
创建,修改或移除环境变量。这些功能的更安全版本可用;请参见 _putenv_s, _wputenv_s。
重要事项 |
---|
此 API 不能在运行时的窗口执行的应用程序。有关更多信息,请参见 CRT 函数不支持与 /ZW。 |
int _putenv(
const char *envstring
);
int _wputenv(
const wchar_t *envstring
);
参数
- envstring
环境字符串定义。
返回值
返回 0;如果成功或– 1 后错误。
备注
_putenv 功能添加新环境变量或修改现有环境变量的值。环境变量定义过程执行环境 (例如,与程序可以将链接库的默认值查找路径)。_wputenv 是 _putenv的宽字符版本;为 _wputenv 的 envstring 参数是宽字符字符串。
一般文本例程映射
Tchar.h 实例 |
未定义的_UNICODE 和_MBCS |
定义的_MBCS |
定义的_UNICODE |
---|---|---|---|
_tputenv |
_putenv |
_putenv |
_wputenv |
envstring 参数必须是指针到窗体 varname=string的字符串,varname 是要添加的环境变量的名称或修改和 string 是易失值。如果 varname 已经属于该环境的一部分,其值。string替换;否则,变量新 varname 及其 string 值添加到该环境。也就是说,您可以从该环境移除变量通过指定空 string —通过指定仅 varname=。
_putenv 和 _wputenv 影响是本地到当前进程仅环境;不能将这些修改命令级环境。即这些函数仅对数据结构可以访问运行库而不是进程创建的环境段由操作系统。在当前进程时停止,环境还原到调用级别处理 (大多数情况下,操作系统级别)。但是,修改环境可以传递给任何更新过程创建的 _spawn、_exec或 system,并且,这些更新过程所有新项由 _putenv 和 _wputenv添加的访问。
不要直接更改环境项:相反,应使用 _putenv 或 _wputenv 更改它。具体而言,_environ[] 全局数组的直接释放组件可能会导致解决的无效内存。
getenv 和 _putenv 使用全局变量 _environ 访问环境表;_wgetenv 和 _wputenv 使用 _wenviron。_putenv 和 _wputenv 可能更改 _environ 和 _wenviron的值,因此无效 _envp 参数传递给 main 和_wenvp 参数传递给 wmain。因此,使用 _environ 或 _wenviron 访问环境信息会更加安全。有关 _putenv 和 _wputenv 关系的更多信息对全局变量,请参见 _environ,_wenviron。
说明 |
---|
功能 _putenv 和 _getenv 系列不是线程安全的。_getenv 可以返回字符串指针,当 _putenv 修改该字符串时,会导致随机崩溃。确保对这些函数同步。 |
要求
实例 |
必需的标头 |
---|---|
_putenv |
<stdlib.h> |
_wputenv |
<stdlib.h> 或 <wchar.h> |
有关更多兼容性信息,请参见中介绍的 兼容性。
示例
有关此示例演示如何使用 _putenv,请参见 getenv, _wgetenv。
.NET Framework 等效项
不适用。若要调用标准 C 函数,请使用 PInvoke。有关更多信息,请参见 平台调用示例。