我正在尝试在C ++程序中运行以下命令:

string cmd("strings -n 3 < BinaryFile > ascii.txt");
system(cmd.c_str();


BinaryFile是包含/home/test/BinaryFile的字符串

当我像这样运行它时,得到以下输出:

sh: BinaryFile: No such file or directory


如果我尝试以下操作:

string cmd("strings -n 3 < BinaryFile.c_str() > ascii.txt");
system(cmd.c_str();


我得到这些错误:

sh -c: line 0: syntax error near unexpected token '('
sh -c: line 0: 'strings -n 3 < Binaryfile.c_str() > ascii.txt


我如何才能使其正常运行?

最佳答案

您需要显式构造命令行:

string cmd("strings -n 3 < " + BinaryFile + " > ascii.txt");
system(cmd.c_str());

关于c++ - 在C++程序中运行linux命令,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43284137/

10-13 06:04