在目录路径中使用shell符号

时间:2015-06-24 20:05:28

标签: c++ shell filepath

我想用我的程序打开一个文件,我想使用shell符号让我更容易找到该文件。在运行时使用它之前,有没有一种简单的方法让shell扩展我的文件路径。我正在寻找能够做到这一点的功能。

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

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

1 个答案:

答案 0 :(得分:2)

您可以使用wordexp

#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';
}