1.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
2
3.. _func-write:
4
5************
6V4L2 write()
7************
8
9Name
10====
11
12v4l2-write - Write to a V4L2 device
13
14
15Synopsis
16========
17
18.. code-block:: c
19
20    #include <unistd.h>
21
22
23.. c:function:: ssize_t write( int fd, void *buf, size_t count )
24    :name: v4l2-write
25
26Arguments
27=========
28
29``fd``
30    File descriptor returned by :ref:`open() <func-open>`.
31
32``buf``
33     Buffer with data to be written
34
35``count``
36    Number of bytes at the buffer
37
38Description
39===========
40
41:ref:`write() <func-write>` writes up to ``count`` bytes to the device
42referenced by the file descriptor ``fd`` from the buffer starting at
43``buf``. When the hardware outputs are not active yet, this function
44enables them. When ``count`` is zero, :ref:`write() <func-write>` returns 0
45without any other effect.
46
47When the application does not provide more data in time, the previous
48video frame, raw VBI image, sliced VPS or WSS data is displayed again.
49Sliced Teletext or Closed Caption data is not repeated, the driver
50inserts a blank line instead.
51
52
53Return Value
54============
55
56On success, the number of bytes written are returned. Zero indicates
57nothing was written. On error, -1 is returned, and the ``errno``
58variable is set appropriately. In this case the next write will start at
59the beginning of a new frame. Possible error codes are:
60
61EAGAIN
62    Non-blocking I/O has been selected using the
63    :ref:`O_NONBLOCK <func-open>` flag and no buffer space was
64    available to write the data immediately.
65
66EBADF
67    ``fd`` is not a valid file descriptor or is not open for writing.
68
69EBUSY
70    The driver does not support multiple write streams and the device is
71    already in use.
72
73EFAULT
74    ``buf`` references an inaccessible memory area.
75
76EINTR
77    The call was interrupted by a signal before any data was written.
78
79EIO
80    I/O error. This indicates some hardware problem.
81
82EINVAL
83    The :ref:`write() <func-write>` function is not supported by this driver,
84    not on this device, or generally not on this type of device.
85