修改模拟器以允许输出重定向(不明确使用>运算符)

时间:2019-03-15 16:52:41

标签: c++ io-redirection

我正在尝试修改模拟器以允许stdout和stderr重定向。当前,模拟器确实可以使用输入重定向,但是无法将其显式编写为<命令,而是在配置文件中指定。

类似的想法是为stdout和stderr重定向实现相同类型的功能,其中未明确声明>运算符,但outfile在配置文件中定义。

作为一个例子,模拟器不能与cat ex.txt > out.txt之类的东西一起使用,但是我希望在这样的配置中实现该东西:

example_config {
    command = "cat ex.txt";
    output_redirect = "out.txt"
};

添加到现有项目中的少量代码在这里:

if (outputFile) {
    std::string line;
    std::fstream outfile;
    outfile.open(outputFile, std::ios::out);

    while(std::getline(std::cout, line))
        outfile << line << std::endl;

    outfile.close();
}

会创建输出文件,但到目前为止还没有从stdout / cout写入任何内容。任何帮助/建议将不胜感激。谢谢

0 个答案:

没有答案