我一直在尝试将数据发送到正在运行的进程的标准输入。这是我所做的:
在终端中,我启动了一个 c++ 程序,它只读取一个字符串并将其打印出来。代码摘录:
while (true) { cin >> s; cout << "I've just read " << s << endl; }
获取运行程序的PID
- 我去
/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
关于c++ - 通过linux终端将数据发送到另一个进程的stdin,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37424497/