[font=楷体_GB2312]在Linux中文件的唯一标识是它的inode。[/font]
[font=楷体_GB2312]文件的inode包含了文件的所有信息:文件的存取权限、当前大小、拥有文件名数量等等。[/font]
[font=楷体_GB2312]有两种了类型的inode:核心inode和盘上inode。一般只关心核心inode。而[/font][font=楷体_GB2312]盘上inode和核心inode包含的信息并不一致。[/font]
[font=楷体_GB2312]我们可以把文件名看成是指向盘上inode的指针。盘上inode包含了指向该inode的文件名的数目,即连接数。当我们删除一个文件时,系统首先将连接数减1。如果连接数变成0并且当前没有进程打开了该文件,该文件才会被真正删除。如果有进程打开了该文件,只有当最后一个使用它的进程结束之后,文件才会被真正删除。[/font]
[font=楷体_GB2312]所以,无名管道也就是在一个进程中创建一个文件,删除它,然后继续对它进行读写操作。并且可以让多个进程存取一个在文件系统中不存在的文件(无名管道)。[/font]


lizeliang 于 2008-02-04 22:08:28发表:
希望高手们给与指点,不胜感激!