今天在看qmail 源代码的时候,有关进程和文件描述符的地方,有点不懂,在网上小查了一下,浅显的样子应该是这样.
文件描述符,录属于进程.对于不同的进程,文件描述符是相互独立的,所以在不同的进程中,可以用相同的文件描述符来指向不同的文件或者管道之类的.
下面是在unix 环境高级编程的话:
对于内核而言 ,所有打开文件都由文件描述符引用.文件描述符是一个非负整数.当打开一个现存文件或创建一个新文件时,内核向 进程 返回一个文件描述符.当读,写一个文件时,用open或create返回的文件描述符标识该文件,将其作为参数传送给read或write.
按照惯例,UNIX shell 使文件描述符0与标准输入相结合,文件描述符1与标准输出相结合,文件描述符2与打闪出错相结合.
这是UNIX shell以及很多应用程序的惯例,而与内核无关.
本文探讨了文件描述符在不同进程中的独立性及其与进程的关系。解释了在Unix环境中,文件描述符如何用于标识打开的文件,并说明了标准输入、输出及错误输出的默认文件描述符。
1572

被折叠的 条评论
为什么被折叠?



