我不能使用setenv()
从stdlib.h
,因为它不适用于C99标准的编译器。 是否有任何其他功能设置在C99环境变量?
Answer 1:
getenv
因此它包括在C99但C90标准的一部分setenv
仅符合一个IEEE标准所以它不被包括在严格标准C99。 此外,对应的是IEEE 2001。
这意味着,没有在C99这样做的任何标准的方式,你必须使用特定于平台的代码来设置ENV。
在FreeBSD 手册页 :
所述的getenv()函数符合ISO / IEC 9899:1990(
ISO C90''). The setenv(), putenv() and unsetenv() functions conforms to IEEE Std 1003.1-2001 (
ISO C90''). The setenv(), putenv() and unsetenv() functions conforms to IEEE Std 1003.1-2001 (
POSIX.1 '')。
setenv
, putenv
等都应任何POSIX系统上进行定义。
如果你使用的是Windows,请参阅本等问题 ,其谈论_putenv_s
。
文章来源: How to set environment variable in ISO c99 Standard C without setenv()?