Visual c++ putenv()的VC实现是否支持将局部变量作为参数?

Visual c++ putenv()的VC实现是否支持将局部变量作为参数?,visual-c++,environment-variables,Visual C++,Environment Variables,据我所知,putenv()的POSIX/Linux版本不会创建字符串的副本,它是作为参数提供的,因此不会保存为以本地字符数组作为参数调用 我想知道的是,putenv()的Microsoft/VC实现是否也有此限制 在我看来,MSDN文档并没有明确说明这一点(与POSIX文档相反,例如通过在Linux上检查man putenv()返回的文档) 谢谢 POSIX函数putenv被弃用,取而代之的是\u putenv,并且(至少在VS2012中)不会编译。但是,使用\u putenv并进入调试器可确认

据我所知,putenv()的POSIX/Linux版本不会创建字符串的副本,它是作为参数提供的,因此不会保存为以本地字符数组作为参数调用

我想知道的是,putenv()的Microsoft/VC实现是否也有此限制

在我看来,MSDN文档并没有明确说明这一点(与POSIX文档相反,例如通过在Linux上检查man putenv()返回的文档)


谢谢

POSIX函数
putenv
被弃用,取而代之的是
\u putenv
,并且(至少在VS2012中)不会编译。但是,使用
\u putenv
并进入调试器可确认传递的字符串已被复制。信息相关代码的一部分(传递的字符串称为
name
):


谢谢!作为旁注:您是如何在调试构建中进入_putenv()的?我的朋友只是拒绝这样做。这是否与我使用/MDd标志集编译程序有关(即,这是否仅适用于静态CRT链接)?还是我错过了什么?顺便说一句,我正在使用VS2008…@Bjoern不客气-只要你不使用Visual Studio Express,并且你进行了完整安装,你也可以获得大部分MFC/ATL/CRT源代码。只是为了完整:我刚刚检查了这一点,并且可以确认上述情况对于VS2008也是正确的。