| .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later | |
| .. c:namespace:: V4L | |
| .. _func-write: | |
| ************ | |
| V4L2 write() | |
| ************ | |
| Name | |
| ==== | |
| v4l2-write - Write to a V4L2 device | |
| Synopsis | |
| ======== | |
| .. code-block:: c | |
| #include <unistd.h> | |
| .. c:function:: ssize_t write( int fd, void *buf, size_t count ) | |
| Arguments | |
| ========= | |
| ``fd`` | |
| File descriptor returned by :c:func:`open()`. | |
| ``buf`` | |
| Buffer with data to be written | |
| ``count`` | |
| Number of bytes at the buffer | |
| Description | |
| =========== | |
| :c:func:`write()` writes up to ``count`` bytes to the device | |
| referenced by the file descriptor ``fd`` from the buffer starting at | |
| ``buf``. When the hardware outputs are not active yet, this function | |
| enables them. When ``count`` is zero, :c:func:`write()` returns 0 | |
| without any other effect. | |
| When the application does not provide more data in time, the previous | |
| video frame, raw VBI image, sliced VPS or WSS data is displayed again. | |
| Sliced Teletext or Closed Caption data is not repeated, the driver | |
| inserts a blank line instead. | |
| Return Value | |
| ============ | |
| On success, the number of bytes written are returned. Zero indicates | |
| nothing was written. On error, -1 is returned, and the ``errno`` | |
| variable is set appropriately. In this case the next write will start at | |
| the beginning of a new frame. Possible error codes are: | |
| EAGAIN | |
| Non-blocking I/O has been selected using the | |
| :ref:`O_NONBLOCK <func-open>` flag and no buffer space was | |
| available to write the data immediately. | |
| EBADF | |
| ``fd`` is not a valid file descriptor or is not open for writing. | |
| EBUSY | |
| The driver does not support multiple write streams and the device is | |
| already in use. | |
| EFAULT | |
| ``buf`` references an inaccessible memory area. | |
| EINTR | |
| The call was interrupted by a signal before any data was written. | |
| EIO | |
| I/O error. This indicates some hardware problem. | |
| EINVAL | |
| The :c:func:`write()` function is not supported by this driver, | |
| not on this device, or generally not on this type of device. |