C++ 在目录路径中使用shell符号

C++ 在目录路径中使用shell符号,c++,shell,filepath,C++,Shell,Filepath,我想用我的程序打开一个文件,我想使用shell符号使我更容易找到文件。在我在运行时使用shell之前,有没有一种简单的方法可以让shell扩展我的文件路径。我正在寻找一个函数来实现这一点 ~/.foo.bar->/home/someuser/.foo.bar 在打开文件之前,是否有一些简单的方法让shell预处理文件路径?您可以使用: #包括 std::string wordexp(std::string var,int flags=0) { wordexp\u t p; if(!wordexp

我想用我的程序打开一个文件,我想使用shell符号使我更容易找到文件。在我在运行时使用shell之前,有没有一种简单的方法可以让shell扩展我的文件路径。我正在寻找一个函数来实现这一点

~/.foo.bar
->
/home/someuser/.foo.bar

在打开文件之前,是否有一些简单的方法让shell预处理文件路径?

您可以使用:

#包括
std::string wordexp(std::string var,int flags=0)
{
wordexp\u t p;
if(!wordexp(变量c_str(),&p,标志))
{
if(p.we\u wordc&&p.we\u wordv[0])
var=p.we_wordv[0];
wordfree&p;
}
收益var;
}
int main()
{

STD::我相信是这样的。@ Jashaszun没有。从命令行中,你可以使用ECHO并让BASH评估它。从C++调用它而不调用BASH将跳过shell扩展。尝试使用BASH作为命令并回传路径。
#include <wordexp.h>

std::string wordexp(std::string var, int flags = 0)
{
    wordexp_t p;
    if(!wordexp(var.c_str(), &p, flags))
    {
        if(p.we_wordc && p.we_wordv[0])
            var = p.we_wordv[0];
        wordfree(&p);
    }
    return var;
}

int main()
{
    std::cout << wordexp("~/test") << '\n';
}