Just about every Linux user is familiar with the process of piping data from one process to another using | signs. It provides an easy way to send output from one command to another and end up with only the data you want to see without having to write scripts to do all of the selecting and reformatting. There is another type of pipe, however — one that warrants the name “pipe”, but has a very different personality. It’s one that you may have never tried or even thought about — the named pipe.
One of the key differences between regular pipes and named pipes is that named pipes have a presense in the file system. That is, they show up as files. But, unlike most files, they never appear to have contents. Even if you write a lot of data to a named pipe, the file appears to be empty.