ubuntu 如何正确地从/dev/input/* 读取设备数据?

bsxbgnwa  于 2022-11-02  发布在  其他
关注(0)|答案(1)|浏览(238)

我尝试使用连接到Linux桌面的游戏控制器中的数据,并使用Clojure输出数据,类似于命令cat /dev/input/js0的作用。
我有以下代码,但是它不像cat命令那样输出事件数据:

(with-open [r (clojure.java.io/input-stream "/dev/input/js0")]
  (loop [c (.read r)]
    (print c)
    (recur (.read r))))

发生的情况是,事件数据只会在重复单击按钮几次后才被打印出来,它不像cat命令那样是连续的。我如何在事件出现时获得它们,以便立即打印它们?

ltskdhd1

ltskdhd11#

由于我不明白的原因,当我切换到使用println而不是print时,我可以看到真实的输出。我的理解是,除了println的新行之外,这两种方法是相同的,所以不知道为什么print延迟输出到repl,而println没有。
在任何情况下,使用println解决了我的问题,现在我可以打印数据从我的控制器,因为我使用它。

相关问题