管道输入已经运行的cpp程序?

时间:2013-12-21 22:51:51

标签: c++ pipe

包括

让我们假设这是我正在运行的代码:

int main(int argc, char **argv) {

bool running = true;
string lineInput;
while (running)
{
    while (cin >> lineInput)
    {
        cout << lineInput;
    }
}

return 0;

}

我希望发生的是我可以通过输入“./myProgram”来调用终端启动程序。这部分是相当直接的。我不确定该怎么做的部分是为了让我可以在以后的某个时间点输入echo "some text to echo" | myProgram并能够让我的程序将该文本打印回终端。

现在我只能在输入时才能使它工作:

echo "blah blah blah" | ./myProgram

所以我的目标是分两个步骤。一个是我开始我的程序,另一个是我管道输入使用

2 个答案:

答案 0 :(得分:1)

我想你可以用命名管道做到这一点。

mkfifo mypipe
./myProgram < mypipe &
cat file1.txt file2.txt file3.txt > mypipe

答案 1 :(得分:0)

您可以使用mkfifo,只需从普通文件中读取该程序中的内容即可。

还有

  • pipesocket_pair(双向)