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()
从缓冲区 buf
开始,将最多 count
个字节写入文件描述符 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()
函数。