gpt4 book ai didi

c - 使用 execle 和 putenv 后跟 execl 有什么区别?

转载 作者:行者123 更新时间:2023-11-30 18:46:43 24 4
gpt4 key购买 nike

假设我 putenv 一个环境变量 ABC,然后执行 execl,或者我执行 execle 并将 ABC 添加到 envp 数组中我传递给 execle 的指针。

如果有的话,有区别吗?

最佳答案

putenv 将环境变量添加到当前环境。然后使用 execl 将使用该环境。

execle 将使用环境参数作为整个环境,即它不会继承现有的环境变量。

通过一个运行 env (打印出当前环境)的简单程序很容易看到这一点:

#include <unistd.h>

int main()
{
execl("/bin/env", "/bin/env", NULL);
}

在我的机器上运行它会打印出许多环境变量,例如HOME等。

#include <unistd.h>

int main()
{
char* env[] = { NULL };
execle("/bin/env", "/bin/env", NULL, env);
}

这不会打印任何内容,因为环境是空的。

关于c - 使用 execle 和 putenv 后跟 execl 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50336288/

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