7.73. V4L2 write()¶
7.73.1. 名稱¶
v4l2-write - 寫入 V4L2 裝置
7.73.2. 概要¶
#include <unistd.h>
-
ssize_t write(int fd, void *buf, size_t count)¶
7.73.3. 引數¶
fd由
open()返回的檔案描述符。buf包含要寫入資料的緩衝區
count緩衝區中的位元組數
7.73.4. 描述¶
write() 將最多 count 個位元組從位於 buf 的緩衝區寫入到由檔案描述符 fd 引用的裝置。 當硬體輸出尚未啟用時,此函式將啟用它們。 當 count 為零時,write() 返回 0,而沒有任何其他影響。
當應用程式未及時提供更多資料時,將再次顯示先前的影片幀、原始 VBI 影像、切片的 VPS 或 WSS 資料。 不會重複切片的圖文電視或隱藏字幕資料,驅動程式會插入一個空白行代替。
7.73.5. 返回值¶
成功時,返回寫入的位元組數。 零表示沒有寫入任何內容。 發生錯誤時,返回 -1,並相應地設定 errno 變數。 在這種情況下,下一次寫入將從新幀的開頭開始。 可能的錯誤程式碼是
- EAGAIN
已使用 O_NONBLOCK 標誌選擇了非阻塞 I/O,並且沒有可用的緩衝區空間立即寫入資料。
- EBADF
fd不是有效的檔案描述符,或者未開啟以進行寫入。- EBUSY
驅動程式不支援多個寫入流,並且裝置已在使用中。
- EFAULT
buf引用了無法訪問的記憶體區域。- EINTR
在寫入任何資料之前,呼叫被訊號中斷。
- EIO
I/O 錯誤。 這表明存在一些硬體問題。
- EINVAL
此驅動程式、此裝置或通常此型別的裝置不支援
write()函式。