a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 76|回复: 0

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

[复制链接]
发表于 2012-8-4 12:07:07 | 显示全部楼层 |阅读模式
Linux认证辅导:形象的理解dup和dup2函数(1)! _7 `0 {( ]/ i9 z6 D0 ^
相信大部分在Unix/Linux下编程的程序员手头上都有《Unix环境高级编程》(APUE)这本超级经典巨著。作者在该书中讲解dup/dup2之前曾经讲过“文件共享”,这对理解dup/dup2还是很有帮助的。这里做简单摘录以备在后面的分析中使用:5 ]* \9 ?$ J7 ?
  Stevens said:
# Z/ v5 z8 ~: I2 y4 w' e$ ]- `$ S  (1) 每个进程在进程表中都有一个记录项,每个记录项中有一张打开文件描述符表,可将视为一个矢量,每个描述符占用一项。与每个文件描述符相关联的是:
1 V$ J& U1 J, L( N  T# c9 G  (a) 文件描述符标志。
/ q6 G& e# J# `* Q  (b) 指向一个文件表项的指针。  l$ i  B! q6 x) t( P
  (2) 内核为所有打开文件维持一张文件表。每个文件表项包含:
' ]7 R" x1 D1 x: R, V  (a) 文件状态标志(读、写、增写、同步、非阻塞等)。
, v' Y6 `9 I* I  (b) 当前文件位移量。
7 M8 [9 A8 X7 t1 |1 v3 f' O: |$ E  (c) 指向该文件v节点表项的指针。; P- l! x" [/ W1 e- B9 A9 g
  图示:. t. t5 _& f* m* c
  文件描述符表
& p/ Z  `' X" J  ------------& I3 k/ R% [9 z
  fd0 0 | p0 -------------》 文件表0 ---------》 vnode03 m3 E' f5 `2 M1 ?) n8 [' I
  ------------/ s) K) S4 L/ C( S$ `. J. D2 I" ?: q6 g
  fd1 1 | p1 -------------》 文件表1 ---------》 vnode1$ c3 v+ w2 S+ g5 |' e8 `
  ------------; g. V) w# S$ a" I& x- @* n/ @9 l) s
  fd2 2 | p2
  X( ^- ~4 C5 e* k, A0 m1 e  ------------. W# g9 n' q8 I- n
  fd3 3 | p34 y% r. N4 `/ w, l6 \5 u  L4 T) O3 G
  ------------) o% _7 H8 ]: c
  。。. 。。.: J* t5 u  ^0 H3 t. B
  。。. 。。.$ y$ `* v. `# [# Y0 A
  ------------
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-5-21 14:28 , Processed in 0.492625 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表