C++ setenv 解析其他变量

标签 c++ linux environment-variables setenv

我正在使用 C++ 和 setenv 设置变量,如下面的程序所示:

setenv("TEST", "$HOME/test", 1);
char* val = getenv("TEST");
printf("TEST=%s", val);

我得到的输出是“TEST=$HOME/test”。但是我希望输出类似于“TEST=/home/toboxos/test”。我使用 linux 手册一无所获。是否有解析环境变量的函数,还是需要我自己来做?

最佳答案

您期望的这种替换是您的 shell 的一个特性,它不是环境固有的。

你需要自己getenv("HOME"),用"/test"拼接,并将结果作为setenv的输入>.

关于C++ setenv 解析其他变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57726539/

相关文章:

Dockerfile:从 shell 继承环境变量

node.js - 使用 buildpacks 在 heroku 上执行和 PATH

c++ - 如何使用初始化列表构造 std::array 对象?

c++ - 我想在 C++ 中创建内部类的对象,或者可能是嵌套类

Python 子进程调用不起作用

linux - 在 bash 脚本中防止系统 sleep /关机/重启

c - 删除链表元素

php - 如何在 Ubuntu 和 Windows 中设置环境变量并安全存储?

c++ - GTest Floats less 或 close with absolute error

c++ - 如何将从Ruby数组中取出的字符串转换为C/C++字符串