我有一个可以运行的c++编译代码,称之为run_process
.
为了描述run_process
,它是一段无限循环/while True等待文本输入的代码,并进行文本预处理,然后在输出中打印预处理的输入:
我想知道是否可以发送命令/请求将输入/STDIN文本发送到正在运行的进程并获取输出文本,目前我想避免编辑run_process
并找到一个“外部”解决方案。
我尝试使用此处提出的解决方案:https://serverfault.com/a/178470 并运行:
echo "test" > /proc/2657677/fd/0
echo "test\n" > /proc/2657677/fd/0
echo -ne "test\n" > /proc/2657677/fd/0
然后得到了这个:
我不理解输出结果,就好像它不能模拟ENTER键一样,甚至无法打印紧贴“Input string”旁边的文本,因为当我按下ENTER键时,输出中什么都没有:
如果您有任何解决方案,即使使用Python或任何其他语言,所有解决方案都将很有趣。
更多细节,请注意代码run_process使用C++ readline函数:
char* input = readline("Input string: ");
从这里的第90行开始:https://opengrm.org/doxygen/thrax/html/rewrite-tester-utils_8cc_source.html#l00245,如果需要更多信息,您可以查看我所称的“run_process”代码实际上在第247行。