在目录路径中使用 shell 符号
Use shell symbols in directory path
我想用我的程序打开一个文件,我想使用 shell 符号使我更容易找到该文件。在我在运行时使用它之前,有没有一种简单的方法可以让 shell 扩展我的文件路径。我正在寻找执行此操作的函数。
~/.foo.bar
-> /home/someuser/.foo.bar
有没有一些简单的方法可以让 shell 在打开文件之前预处理文件路径?
您可以使用 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';
}
我想用我的程序打开一个文件,我想使用 shell 符号使我更容易找到该文件。在我在运行时使用它之前,有没有一种简单的方法可以让 shell 扩展我的文件路径。我正在寻找执行此操作的函数。
~/.foo.bar
-> /home/someuser/.foo.bar
有没有一些简单的方法可以让 shell 在打开文件之前预处理文件路径?
您可以使用 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';
}