I’m trying to make two-way many-to-one communication between programs in Linux. My plan is the following: One program called “driver” that talks with the hardware needs to communicate with an unknown number of applications in Linux. I read that one of the most common ways for inter process communication is “named pipes”. The question I haven’t found yet is: How
Tag: named-pipes
Linux named fifo non-blocking read select returns bogus read_fds
Similar to the problem asked a while ago on kernel 3.x, but I’m seeing it on 4.9.37. The named fifo is created with mkfifo -m 0666. On the read side it is opened with The resulting fd is passed into a call to select(). Everything works ok, till I run echo >> <fifo-name>. Now the fd appears in the read_fds
Detect when reader closes named pipe (FIFO)
Is there any way for a writer to know that a reader has closed its end of a named pipe (or exited), without writing to it? I need to know this because the initial data I write to the pipe is different; the reader is expecting an initial header before the rest of the data comes. Currently, I detect this
What is the proper place to put named pipes on Linux?
I’ve got a few processes that talk to each other through named pipes. Currently, I’m creating all my pipes locally, and keeping the applications in the same working directory. At some point, it’s assumed that these programs can (and will) be run from different directories. I need to create these pipes I’m using in a known location, so all of
Is there a way to improve performance of linux pipes?
I’m trying to pipe extremely high speed data from one application to another using 64-bit CentOS6. I have done the following benchmarks using dd to discover that the pipes are holding me back and not the algorithm in my program. My goal is to achieve somewhere around 1.5 GB/s. First, without pipes: Next, a pipe between two dd processes: Are