![字符设备只能处理阻塞 I/O 吗?](https://linux22.com/image/185393/%E5%AD%97%E7%AC%A6%E8%AE%BE%E5%A4%87%E5%8F%AA%E8%83%BD%E5%A4%84%E7%90%86%E9%98%BB%E5%A1%9E%20I%2FO%20%E5%90%97%EF%BC%9F.png)
让我们考虑以下(假想的)设备:一个时钟,需要 1 秒来查询,然后返回当前时间。我们要为其编写一个字符设备驱动程序,该驱动程序仅支持读操作。
- 我相信非阻塞读取对于这样的设备没有意义,因为我们无法缓存读取的结果。你同意吗?
- 是否只允许处理阻塞读?如果是这样,非阻塞读取应该返回什么错误代码?或者我们必须通过什么其他方式来指定我们不支持非阻塞操作?
在为真实设备实现字符设备驱动程序之前,我想更好地理解这一点。我对 Linux 很感兴趣,但我相信答案不太可能是特定于 Linux 的。
让我们考虑以下(假想的)设备:一个时钟,需要 1 秒来查询,然后返回当前时间。我们要为其编写一个字符设备驱动程序,该驱动程序仅支持读操作。
在为真实设备实现字符设备驱动程序之前,我想更好地理解这一点。我对 Linux 很感兴趣,但我相信答案不太可能是特定于 Linux 的。