|
管道的实施机制管道是指用来连接一个读进程和一个写进程以实现它们之间通信的共享文件,也称为管道文件。Linux实现了两种管道,一种是无名管道,另一种是命名管道。无名管道没有磁盘节点。它只作为一个内存对象存在,当它用完时就会被销毁。由于没有文件名、路径或磁盘节点,因此没有显式打开无名管道的过程。实际上,它在创建时会自动打开,并生成内存inode节点、dentry目录项对象和两个文件结构对象(一个读操作和一个写操作)。 它们的内存对象与普通文件一致,所以读写操作使用同一个文件接口,当然读写功能是专用的。由于无法显式打开无名管道,因此只能通过在两个进程之间与继承父进程的父子进程、兄弟进程或其他相关管道文件对象进行通信来使用无名管道。命名管道具有文件名和磁盘I节点,因此可以由任意两个或多个进程用于通信。其使用方法与普通档案相似,遵循打开、读取、写入、关闭的过程。但是,读写的内部实现与普通文件不同,与无名管道的内部实现相同。 |