FIFO – using it in the shell
In the previous recipe, I mentioned that there's a disadvantage to the
pipe() system call—it can only be used between related processes. But there's another type of pipe we can use, called a named pipe. Another name for it is First In, First Out (FIFO). Named pipes can be used between any processes, related or not.
A named pipe, or a FIFO, is actually a special kind of file. The
mkfifo() function creates that file on the filesystem, just like any other file. Then, we use that file to read and write data between processes.
There's also a command named
mkfifo, which we can use directly from the shell to create named pipes. We can use this to pipe data between unrelated commands.
In this introduction to named pipes, we'll cover the
mkfifo command. In the next two recipes, we'll write a C program using the
mkfifo() function and then another program to read the pipe's data.
Knowing how to use named pipes...