我一直在尝试将数据发送到正在运行的进程的stdin。这是我的工作:
while (true) {
cin >> s;
cout << "I've just read " << s << endl;
}
/proc/PID/fd/
echo text > 0
结果:
text
出现在运行程序的终端中。注意,不是I've just read text
,而是text
。我在做什么错,应该怎么做才能打印
'I've just read text'
? 最佳答案
启动C++程序时,需要确保其输入来自管道而不是来自终端。您可以使用cat | myapp
来做到这一点。一旦运行,您可以将应用程序的PID用于echo text > /proc/PID/fd/0