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()
函数。