会计考友 发表于 2012-8-4 12:07:07

Linux认证辅导:形象的理解dup和dup2函数(1)

Linux认证辅导:形象的理解dup和dup2函数(1)
相信大部分在Unix/Linux下编程的程序员手头上都有《Unix环境高级编程》(APUE)这本超级经典巨著。作者在该书中讲解dup/dup2之前曾经讲过“文件共享”,这对理解dup/dup2还是很有帮助的。这里做简单摘录以备在后面的分析中使用:
  Stevens said:
  (1) 每个进程在进程表中都有一个记录项,每个记录项中有一张打开文件描述符表,可将视为一个矢量,每个描述符占用一项。与每个文件描述符相关联的是:
  (a) 文件描述符标志。
  (b) 指向一个文件表项的指针。
  (2) 内核为所有打开文件维持一张文件表。每个文件表项包含:
  (a) 文件状态标志(读、写、增写、同步、非阻塞等)。
  (b) 当前文件位移量。
  (c) 指向该文件v节点表项的指针。
  图示:
  文件描述符表
  ------------
  fd0 0 | p0 -------------》 文件表0 ---------》 vnode0
  ------------
  fd1 1 | p1 -------------》 文件表1 ---------》 vnode1
  ------------
  fd2 2 | p2
  ------------
  fd3 3 | p3
  ------------
  。。. 。。.
  。。. 。。.
  ------------
页: [1]
查看完整版本: Linux认证辅导:形象的理解dup和dup2函数(1)