Does named pipe modify the filesystem?

The file object itself is created in the filesystem, but no data is stored in a file system. From the mkpipe(3) manpage:

   A  FIFO special file is similar to a pipe, except that it is created in
   a different way.  Instead of being an anonymous communications channel,
   a  FIFO  special  file  is  entered  into  the  file  system by calling
   mkfifo().

About the only time the data might be stored on disk is during hibernation when memory is written to the swap space, including buffers - however this an corner case.


Nope. Writing to a named pipe does not modify the filesystem (except for access times).

Here's a demonstration:

$ mkdir test
$ mkdir test-ro
$ mkfifo test/fifo
$ mount --bind test test-ro
$ mount -o remount,ro test-ro
$ cat test/fifo & echo something >> test/fifo
something

As you can see, even though the fifo was on a read-only filesystem, we were able to write to it.

Named pipes don't store any piped data on the filesystem. Their data is buffered in memory, separate from the filesystem buffers.