6.5.1. LIRC read()¶
6.5.1.1. 名称¶
lirc-read - 从 LIRC 设备读取
6.5.1.2. 概要¶
#include <unistd.h>
-
ssize_t read(int fd, void *buf, size_t count)¶
6.5.1.3. 参数¶
fd
由
open()
返回的文件描述符。buf
要填充的缓冲区
count
要读取的最大字节数
6.5.1.4. 描述¶
read()
尝试从文件描述符 fd
读取最多 count
个字节到从 buf
开始的缓冲区中。如果 count
为零,则 read()
返回零,并且没有其他结果。如果 count
大于 SSIZE_MAX
,则结果未指定。
数据的确切格式取决于驱动程序使用的LIRC 模式。使用 ioctl LIRC_GET_FEATURES 获取支持的模式,并使用 ioctls LIRC_GET_REC_MODE 和 LIRC_SET_REC_MODE 设置当前活动模式。
模式 LIRC_MODE_MODE2 用于原始 IR,其中包含描述 IR 信号的无符号 int 值的包从字符设备读取。
或者,可以使用 LIRC_MODE_SCANCODE,在这种模式下,扫描码由软件解码器或硬件解码器解码。rc_proto
成员设置为用于传输的IR 协议,scancode
设置为解码后的扫描码,keycode
设置为键码或 KEY_RESERVED
。
6.5.1.5. 返回值¶
成功时,返回读取的字节数。如果此数字小于请求的字节数或一个帧所需的数据量,则不是错误。如果出错,则返回 -1,并且会适当地设置 errno
变量。