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 用於原始紅外,其中包含描述紅外訊號的無符號整數值的包是從字元裝置讀取的。

或者,可以使用 LIRC_MODE_SCANCODE,在這種模式下,掃描碼由軟體解碼器或硬體解碼器解碼。rc_proto 成員設定為用於傳輸的 紅外協議scancode 設定為解碼後的掃描碼,keycode 設定為鍵碼或 KEY_RESERVED

6.5.1.5. 返回值

成功時,返回讀取的位元組數。如果該數字小於請求的位元組數或一個幀所需的資料量,則不是錯誤。發生錯誤時,返回 -1,並適當地設定 errno 變數。