linux Pipes

Linux pipes only work within the same process family tree. If you are piping from procA to procB, they must both have the same parent process (e.g. bash).

For inter-process piping between unrelated processes, you can use a named pipe (also called a FIFO - First In, First Out). These are created with mkfifo and allow processes to communicate via a named file without being in the same process family.

Windows vs Linux Link to heading

Windows implements piping differently: instead of using a pipe syscall, it creates a temporary file for the source process to write to and the destination process to read from. This is a key implementation difference between how the two OSes handle pipes.