1.. -*- coding: utf-8; mode: rst -*- 2 3.. _lirc-write: 4 5************ 6LIRC write() 7************ 8 9Name 10==== 11 12lirc-write - Write to a LIRC 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: lirc-write 25 26Arguments 27========= 28 29``fd`` 30 File descriptor returned by ``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() <lirc-write>` writes up to ``count`` bytes to the device 42referenced by the file descriptor ``fd`` from the buffer starting at 43``buf``. 44 45The data written to the chardev is a pulse/space sequence of integer 46values. Pulses and spaces are only marked implicitly by their position. 47The data must start and end with a pulse, therefore, the data must 48always include an uneven number of samples. The write function must 49block until the data has been transmitted by the hardware. If more data 50is provided than the hardware can send, the driver returns ``EINVAL``. 51 52 53Return Value 54============ 55 56On success, the number of bytes read is returned. It is not an error if 57this number is smaller than the number of bytes requested, or the amount 58of data required for one frame. On error, -1 is returned, and the ``errno`` 59variable is set appropriately. The generic error codes are described at the 60:ref:`Generic Error Codes <gen-errors>` chapter. 61