我最近为脚本语言贡献了一个环境变量类,并使用putenv(const char*)
来设置key=value
格式的环境变量。但是,作者将其更改为setenv(const char*, const char*)
。
最初,我使用了putenv
函数,因为它是在另一个SO答案中提到的,它是与平台无关的方法:https://stackoverflow.com/a/23073039/2423150
但显然,Windows 确实具有setenv
:https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/putenv?view=vs-2017
那么,应该使用哪个?该脚本语言旨在在某些向后兼容方面进行编译-但是引入setenv
到底有多远?指向MSDN的链接实际上提到了该POSIX函数已被弃用,但文档版本指向VS2017。在这里,我有点困惑...