C++ 在目录路径中使用shell符号
我想用我的程序打开一个文件,我想使用shell符号使我更容易找到文件。在我在运行时使用shell之前,有没有一种简单的方法可以让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
~/.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';
}