管道就是指用于连接一个读进程和一个写进程,以实现它们之间通信的共享文件,又称pipe文件。Linux中实现了两种管道,一种是无名管道,一种是命名管道。无名管道没有磁盘节点,它仅作为一个内存对象存在,用完后就销毁了。因为没有文件名和路径,也没有磁盘节点,因此无名管道没有显式的打开过程,实际上它是在创建时就自动打开的,并且生成内存inode节点、dentry目录项对象和两个文件结构对象(一个读操作、一个写操作),其内存对象和普通文件的一致,所以读写操作使用的是同样的文件接口,当然读写函数是专用的。因为无名管道不能显式打开,因此只能由父子进程之间、兄弟进程之间或者其他有亲缘关系并且都继承了祖先进程的管道文件对象的两个进程间通信使用。命名管道是有文件名和磁盘i节点的,因此可由任意两个或多个进程间通信使用,它的使用方法和普通文件类似,都遵循打开、读、写、关闭这样的过程,但是读写的内部实现和普通文件不同,而和无名管道一样。