是否可以使用重定向到标准输入通过命名管道读取间歇性发送的数据?
我想做的是:
$ mkfifo pipe
$ ./test < pipe
在另一个终端:
$ cat datafile > pipe
$ cat datafile > pipe
重复将信息转储到管道中。这只适用于第一次。
这是一个显示行为的测试演示程序:
int main(int argc, char *argv[]) {
char input_string[30];
while(1) {
while( cin.read(input_string, 30) || cin.gcount()!=0 ) {
cout << "!" << endl;
}
}
return 1;
}
发生什么了?重定向是否仅向管道提供单个发送的内容?我已经编写了一个实际生产代码的版本,它以管道的名称作为参数并保持打开状态以便以这种方式编写,也许这就是答案。但我想知道是否有办法通过重定向来做到这一点。