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