• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 exact format of the data depends on what mode a driver uses, use
46:ref:`lirc_get_features` to get the supported mode.
47
48When in :ref:`LIRC_MODE_PULSE <lirc-mode-PULSE>` mode, the data written to
49the chardev is a pulse/space sequence of integer values. Pulses and spaces
50are only marked implicitly by their position. The data must start and end
51with a pulse, therefore, the data must always include an uneven number of
52samples. The write function must block until the data has been transmitted
53by the hardware. If more data is provided than the hardware can send, the
54driver returns ``EINVAL``.
55
56Return Value
57============
58
59On success, the number of bytes read is returned. It is not an error if
60this number is smaller than the number of bytes requested, or the amount
61of data required for one frame.  On error, -1 is returned, and the ``errno``
62variable is set appropriately. The generic error codes are described at the
63:ref:`Generic Error Codes <gen-errors>` chapter.
64