66 lines
1.6 KiB
ReStructuredText
66 lines
1.6 KiB
ReStructuredText
|
.. -*- coding: utf-8; mode: rst -*-
|
||
|
|
||
|
.. _lirc-read:
|
||
|
|
||
|
***********
|
||
|
LIRC read()
|
||
|
***********
|
||
|
|
||
|
Name
|
||
|
====
|
||
|
|
||
|
lirc-read - Read from a LIRC device
|
||
|
|
||
|
|
||
|
Synopsis
|
||
|
========
|
||
|
|
||
|
.. code-block:: c
|
||
|
|
||
|
#include <unistd.h>
|
||
|
|
||
|
|
||
|
.. c:function:: ssize_t read( int fd, void *buf, size_t count )
|
||
|
:name: lirc-read
|
||
|
|
||
|
|
||
|
Arguments
|
||
|
=========
|
||
|
|
||
|
``fd``
|
||
|
File descriptor returned by ``open()``.
|
||
|
|
||
|
``buf``
|
||
|
Buffer to be filled
|
||
|
|
||
|
``count``
|
||
|
Max number of bytes to read
|
||
|
|
||
|
Description
|
||
|
===========
|
||
|
|
||
|
:ref:`read() <lirc-read>` attempts to read up to ``count`` bytes from file
|
||
|
descriptor ``fd`` into the buffer starting at ``buf``. If ``count`` is zero,
|
||
|
:ref:`read() <lirc-read>` returns zero and has no other results. If ``count``
|
||
|
is greater than ``SSIZE_MAX``, the result is unspecified.
|
||
|
|
||
|
The lircd userspace daemon reads raw IR data from the LIRC chardev. The
|
||
|
exact format of the data depends on what modes a driver supports, and
|
||
|
what mode has been selected. lircd obtains supported modes and sets the
|
||
|
active mode via the ioctl interface, detailed at :ref:`lirc_func`.
|
||
|
The generally preferred mode for receive is
|
||
|
:ref:`LIRC_MODE_MODE2 <lirc-mode-mode2>`, in which packets containing an
|
||
|
int value describing an IR signal are read from the chardev.
|
||
|
|
||
|
See also
|
||
|
`http://www.lirc.org/html/technical.html <http://www.lirc.org/html/technical.html>`__
|
||
|
for more info.
|
||
|
|
||
|
Return Value
|
||
|
============
|
||
|
|
||
|
On success, the number of bytes read is returned. It is not an error if
|
||
|
this number is smaller than the number of bytes requested, or the amount
|
||
|
of data required for one frame. On error, -1 is returned, and the ``errno``
|
||
|
variable is set appropriately.
|