C ++ setenv解决其他变量

Tob*_*xos 1 c++ linux environment-variables setenv

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

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

我得到的输出是“ TEST = $ HOME / test”。但是我希望输出像“ TEST = / home / toboxos / test”。使用linux手册没有任何帮助。是否有任何解决环境变量的功能,或者我自己完成此操作?

Que*_*tin 6

您期望的这种替换是Shell的功能,它不是环境固有的。

您需要getenv("HOME")自己,将其连接起来"/test",然后将结果用作的输入setenv