5.3.2. LIRC write()

5.3.2.1. Name

lirc-write - Write to a LIRC device

5.3.2.2. Synopsis

#include <unistd.h>
ssize_t write(int fd, void *buf, size_t count)

5.3.2.3. Arguments

fd
File descriptor returned by open().
buf
Buffer with data to be written
count
Number of bytes at the buffer

5.3.2.4. Description

write() writes up to count bytes to the device referenced by the file descriptor fd from the buffer starting at buf.

The exact format of the data depends on what mode a driver uses, use ioctl LIRC_GET_FEATURES to get the supported mode.

When in LIRC_MODE_PULSE mode, the data written to the chardev is a pulse/space sequence of integer values. Pulses and spaces are only marked implicitly by their position. The data must start and end with a pulse, therefore, the data must always include an uneven number of samples. The write function must block until the data has been transmitted by the hardware. If more data is provided than the hardware can send, the driver returns EINVAL.

5.3.2.5. 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. The generic error codes are described at the Generic Error Codes chapter.