登录 注册
当前位置:主页 > 资源下载 > 49 > 直接转换方法将文件描述符-数据流图转化为模块结构图

直接转换方法将文件描述符-数据流图转化为模块结构图

  • 更新:2024-11-05 10:26:08
  • 大小:5.82MB
  • 推荐:★★★★★
  • 来源:网友上传分享
  • 类别:Unix - 操作系统
  • 格式:PDF

资源介绍

15.3 传送文件描述符 在进程间传送打开文件描述符的能力非常有用。用此可以对客户机 /服务器应用进行不同 的设计。它允许一个进程(一般是服务器)处理与打开一个文件有关的所有操作(涉及的细节 可能是:将网络名翻译为网络地址、拨号调制解调器、协商文件锁等。)以及向调用进程返回 一描述符,该描述符可被用于以后的所有 I / O函数。打开文件或设备的所有细节对客户而言都 是透明的。 4 . 2 B S D支持传送打开描述符,但其实施中有些错误。4 . 3 B S D排除了这些错误。 S V R 3 . 2及以上版本都支持传送打开描述符。 下面进一步说明“从一个进程向另一个进程传送一打开文件描述符”的含义。回忆图 3 - 2, 其中显示了两个进程,它们打开了同一文件。虽然它们共享同一 v节点表,但每个进程都有它 自己的文件表项。 当从一个进程向另一个进程传送一打开文件描述符时,我们想要发送进程和接收进程共享 同一文件表项。图1 5 - 4显示了所希望的安排。在技术上,发送进程实际上向接受进程传送一个 指向一打开文件表项的指针。该指针被分配存放在接收进程的第一个可用描述符项中。(注意, 不要得到错觉以为发送进程和接收进程中的描述符编号是相同的,通常它们是不同的。)这种 情况与在f o r k之后,父、子进程完全共享一个打开文件表项相同(见图 8 - 1)。 当发送进程将描述符传送给接收进程后,通常它关闭该描述符。发送进程关闭该描述符并 不造成关闭该文件或设备,其原因是该描述符对应的文件仍需为接收进程打开(即使接收进程 尚未接收到该描述符)。 图15-4 从上一进程传送一个打开文件至下一进程 3 5 8 U N I X环境高级编程 进程表项 f d标志 p t r 进程表项 f d标志 p t r 文件表 文件状态标志 当前文件位移 v节点指针 v节点表 v节点信息 i节点信息 当前文件长度