1.. -*- coding: utf-8; mode: rst -*- 2 3.. _lirc-read: 4 5*********** 6LIRC read() 7*********** 8 9Name 10==== 11 12lirc-read - Read from a LIRC device 13 14 15Synopsis 16======== 17 18.. code-block:: c 19 20 #include <unistd.h> 21 22 23.. c:function:: ssize_t read( int fd, void *buf, size_t count ) 24 :name: lirc-read 25 26 27Arguments 28========= 29 30``fd`` 31 File descriptor returned by ``open()``. 32 33``buf`` 34 Buffer to be filled 35 36``count`` 37 Max number of bytes to read 38 39Description 40=========== 41 42:ref:`read() <lirc-read>` attempts to read up to ``count`` bytes from file 43descriptor ``fd`` into the buffer starting at ``buf``. If ``count`` is zero, 44:ref:`read() <lirc-read>` returns zero and has no other results. If ``count`` 45is greater than ``SSIZE_MAX``, the result is unspecified. 46 47The lircd userspace daemon reads raw IR data from the LIRC chardev. The 48exact format of the data depends on what modes a driver supports, and 49what mode has been selected. lircd obtains supported modes and sets the 50active mode via the ioctl interface, detailed at :ref:`lirc_func`. 51The generally preferred mode for receive is 52:ref:`LIRC_MODE_MODE2 <lirc-mode-mode2>`, in which packets containing an 53int value describing an IR signal are read from the chardev. 54 55See also 56`http://www.lirc.org/html/technical.html <http://www.lirc.org/html/technical.html>`__ 57for more info. 58 59Return Value 60============ 61 62On success, the number of bytes read is returned. It is not an error if 63this number is smaller than the number of bytes requested, or the amount 64of data required for one frame. On error, -1 is returned, and the ``errno`` 65variable is set appropriately. 66