Pipe and Fifo both are IPC (Inter Process Communication) object.
Pipe (IPC Object)
- Pipe does not have any name unlike Fifo.
 - Pipe is a structure of data which is contained into the memory. It is removed when existing process terminates.
 - Basically, Pipe is used to communicate between 2 or more related processes.
 - If Pipe is already in opened state, then it does not need to be opened.
 - Pipe provides simplex data flow
 - eg: pipe(int fd[2])
 
Fifo (IPC Object)
- Fifo is also an IPC object, but it has its name.
 - Unlike Pipe, it is a structure of file which is created in disc.
 - It is also used for communication but only between unrelated processes.
 - It should be opened every time when it needs to write and read.
 - Fifo provides half duplex data flow.
 - eg: mkfifo(const char * path_name, mode_t mode)
 
