C++ setenv 解析其他变量

C++ setenv resolve other variables

我正在使用 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 的输入。