c - 在 C 中设置环境变量

标签 c linux unix environment-variables

有没有办法在 Linux 中使用 C 设置环境变量?

我尝试了 setenv()putenv(),但它们似乎对我不起作用。

最佳答案

我在这里做一个大胆的猜测,但是这些函数似乎不起作用的正常原因不是因为它们不起作用,而是因为用户并不真正了解环境变量是如何工作的。例如,如果我有这个程序:

int main(int argc, char **argv)
{
  putenv("SomeVariable=SomeValue");
  return 0;
}

然后我从 shell 运行它,它不会修改 shell 的环境 - 子进程无法做到这一点。这就是为什么修改环境的 shell 命令是内置的,以及为什么您需要 source 一个包含要添加到 shell 的变量设置的脚本,而不是简单地运行它。

关于c - 在 C 中设置环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3416638/

相关文章:

c - 是否有正确的方法将基本路径名与新路径名连接起来?

python - 在Linux上使用Python暂停和/或恢复音频

c - EAGAIN 是什么意思?

ruby-on-rails - Apache 反向代理 Unix 套接字

c - GCC 将指针转换为不兼容的类型

c - 开关盒内部 - 变量定义相关

c - 使用 Windows API 读取文件

c++ - 从共享对象调用时 libmfx.a 中的 MFXInit() 出现段错误

linux - 使用 bash 脚本输入 ssh 密码,没有那个文件或目录

linux - 为什么这个 oneliner 会给我一个错误?