linux - Linux 字符设备是否应使用换行符终止 read()

标签 linux linux-kernel posix chardev

POSIX 定义了 text file如:

A file that contains characters organized into one or more lines.

POSIX 定义了 line

A sequence of zero or more non-newline characters plus a terminating newline character.

鉴于此,Linux 字符设备驱动程序的 read() 函数是否应该在到达 EOF/没有更多数据时将 '\n' 附加到用户缓冲区?

最佳答案

字符驱动程序的概念类似于 stream 。从这个角度来看,read 只是返回接下来可用的任何内容。现在可用的通常是其驱动程序的设备定义的一部分。如果设备返回换行符,那么驱动程序也应该返回换行符。请注意,这意味着设备将在所有平台上返回换行符,而不仅仅是 Linux。

一般来说,解释read返回的字节是一个更高层次的抽象问题。从策略与机制的角度来看,字符驱动可以被认为是提供机制,将策略留给更高层。

关于linux - Linux 字符设备是否应使用换行符终止 read(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40127249/

相关文章:

linux - 跟踪 Linux 上的文件描述符事件

json - 使用 jq 转换 json 对象,使用 base64 解码转换值

linux - 在内核模块中实现 CPU 扩展

c - 找不到 DEADLINE 调度策略

c - 防止重用文件描述符

c++ - fork 进程一直监听服务器的端口

c - C 中的信号量

linux - gstreamer 中的哪个状态表示管道正常工作?

linux - 如何在初始化期间挂载 filesystem.git 目录?

linux - Raspbian 是否支持通用时钟框架?