gpt4 book ai didi

c - 如何编写我自己的 setenv()?

转载 作者:太空宇宙 更新时间:2023-11-04 01:55:56 26 4
gpt4 key购买 nike

我的学校要我实现setenv() 标准库函数的行为。我不允许为此实现使用 setenv()。我该怎么做?

最佳答案

在 C 编程语言的许多实现中,尤其是在 POSIX 上,可以从 environ 全局变量访问环境。您可能需要手动声明它,因为它未在任何标准头文件中声明:

extern char **environ;

environ 指向一个 NULL 终止的指针数组,指向 variable=value 字符串。例如,如果您的环境有变量 foobarbaz,则 environ 中的条目可能是:

environ[0] = "foo=a";
environ[1] = "bar=b";
environ[2] = "baz=c";
environ[3] = NULL;

要在不使用 setenv()putenv() 函数的情况下改变环境,请检查您要设置的键是否已经存在。如果是,则覆盖该 key 的条目。否则,您需要将 environ 的内容复制到一个新数组中,并将新条目添加到其末尾。为此,您可以使用 malloc()calloc()memcpy()。由于这是家庭作业,我不打算提供更多细节。

关于c - 如何编写我自己的 setenv()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34300527/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com