如何在没有setenv()的情况下在ISO c99标准C中设置环境变量



我不能将 stdlib.h 中的setenv()用于 C99 标准编译器,因为它不可用。在 C99 中还有其他函数可以设置环境变量吗?

因此

getenv是C90标准的一部分,该标准包含在C99中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 ( POSIX.1'')。


setenvputenv等应该在任何POSIX系统上定义。

如果您使用的是Windows,请参阅另一个问题,其中涉及_putenv_s

最新更新