字符设备只能处理阻塞 I/O 吗?

字符设备只能处理阻塞 I/O 吗?

让我们考虑以下(假想的)设备:一个时钟,需要 1 秒来查询,然后返回当前时间。我们要为其编写一个字符设备驱动程序,该驱动程序仅支持读操作。

  • 我相信非阻塞读取对于这样的设备没有意义,因为我们无法缓存读取的结果。你同意吗?
  • 是否只允许处理阻塞读?如果是这样,非阻塞读取应该返回什么错误代码?或者我们必须通过什么其他方式来指定我们不支持非阻塞操作?

在为真实设备实现字符设备驱动程序之前,我想更好地理解这一点。我对 Linux 很感兴趣,但我相信答案不太可能是特定于 Linux 的。

相关内容