I have an entertainment system written in C. It uses LIRCD to get the user's key presses from a remote control. But I have more than one program listening to the LIRCD file, connecting through sockets.

Sometimes when I issue a key press on the remote, not all programs connected to LIRCD receive the data. Multiple quick presses send the data to all programs.

I want to know if what I am doing is the best way, or if I should look at one program connecting to LIRCD via a socket, and the other programs connect to a FIFO file (mkfifo).

Any ideas?