我正在使用 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/