我正在 R 中编写一个具有粗略CLI(命令行界面)的工具,该工具从套接字执行非阻塞读取(正在工作)。我希望通过以非阻塞方式从控制台读取单个字符(如果存在)来同时检查新命令。一个简化的例子
repeat{
newCmdChar <- nonblockingReadConsole()
if (newCmdChar == NULL) doStuffReadingNonblockingSocket()
else switch(newCmdChar,
a = doThis(),
b = doThat(),
x = break)
}
各种实验以非阻塞方式失败了文件(“stdin”),以及scan(),readLines()等上的排列。这里描述了一种方法How do you read a single character from console in R (without RETURN)?但它需要通过一个开放的图形设备来完成我本来希望避免这种情况。
问题
谢谢:)
/乔治
答案 0 :(得分:0)
我担心答案是您可能无法以非阻塞方式从R GUI命令行获取输入。它违背了R的单线程特性。
如果您需要此类行为,请使用其他语言编写人工互动部分,并调用R进行计算。或者使用其中一个GUI工具包,如您链接的问题中所述。
答案 1 :(得分:0)
更新:我已经在上面引用的链接中实现了“带键盘回调的开放式grDevice”方法,并且它比预期更方便。干杯,/ geg