82 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
			
		
		
	
	
			82 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
| .. 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.
 |