Apache中的文件与目录(1)[8]

[入库:2006年2月23日] [更新:2007年3月24日]

本文简介:

filedes是文件的描述符;fname则是打开的文件的名称;is_pipe用以标记当前文件是否是管道文件;Unix中在创建匿名管道的时候会生成一个管道文件,在管道中传输的数据实际上最终都保存在匿名文件中。对于这种临时的管道文件,它的is_pipe1filePtr是读写文件的时候文件内部的文件指针,通常情况下这个成员只有seek函数的时候才需要使用,由于seek需要给出当前文件的内部指针位置,因此在任何的文件读和写之后,我们都必须立即调整filePtr的值,以使它指向正确的位置。direction则是记录了当前的操作类型,0是读操作,1是写操作;buffer缓冲区用以保存从文件中读取的数据,dataRead则用以记录从文件中读取到缓冲区中的有效的字节数;blocking则是记录的读取的方式,一般允许两种,即阻塞和非阻塞。对于阻塞,那么读取将等待,直到文件中有新的数据或者读取超时,超时的时间由timeout决定。
另外,如果支持多线程,那么为了保证线程访问安全性,在可能出现互斥的数据结构中都要额外的增加内部互斥锁。文件结构的内部互斥锁由变量thlock决定。任何人访问该数据结构之前都必须先获取该互斥锁,同时访问结束后该互斥锁将被释放。
关于作者
张中庆,目前主要的研究方向是嵌入式浏览器,移动中间件以及大规模服务器设计。目前正在进行Apache的源代码分析,计划出版《Apache源代码全景分析》上下册。Apache系列文章为本书的草案部分,对Apache感兴趣的朋友可以通过flydish1234 at sina.com.cn与之联系!

如果你觉得本文不错,请点击文后的“推荐本文”链接!!

本文关键:Apache中的文件与目录(1)
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top