putenv函数windows和linux的不同
对于putenv函数,我们都知道是设置环境变量,用法如下:
功 能: 把字符串加到当前环境中
用 法: int putenv(char *envvar);
函数说明: putenv()用来改变或增加环境变量的内容。参数enwar的格式为enwar=value,如果该环境变量原先存在,则变量内容会依参数enwar改变,否则此参数内容会成为新的环境变量
返回值: 执行成功则返回0,有错误发生则返回-1
例如:putenv(“envtest=c:\windows”)
最近项目中发现,该函数在windows和linux中有个小小的不同,但很可能就是因为这个不同而导致bug。这个不同点在于putenv还可以删除环境变量。
windows环境下调用putenv(“envtest=”),就把该环境变量删除了
linux环境下调用putenv(“envtest=”),则是设置该环境变量为空,要删除,则需要调用putenv(“envtest”)。
就是一个等号的差别,导致该函数在不同系统中功能不尽相同。