4.4 打开文件
文件打开应该是使用的最多的文件操作了,任何文件在使用之前都必须首先打开。ANSI C标准库和Unix系统库函数都提供对“打开文件”这个操作语义的支持。他们提供的接口很相似,参数一般都为“文件名+打开标志位+权限标志位”,Apache中提供了apr_file_open函数来支持文件打开操作,该函数只是在原有的标准库的基础上进行了少许的封装。apr_file_open无法忽略习惯的巨大力量,它提供了与ANSI C以及Unix系统库函数类似的接口如下:
APR_DECLARE(apr_status_t) apr_file_open(apr_file_t **new,
const char *fname,
apr_int32_t flag,
apr_fileperms_t perm,
apr_pool_t *pool);
其中fname、flag和perm三个参数与普通的open函数相同,fname分别表示打开的文件的路径名称,可以是相对路径,也可以是绝对路径。每个封装都有自定义的一些标志宏,这里也不例外,flag和perm参数都需要用户传入APR自定义的一些宏组合,不过由于这些宏的可读性都很好,不会成为你使用过程的绊脚石。flag是打开文件的标志,包括可读可写,Apache中打开标志可以概括为下面的几种:
|
打开标志
|
含义
|
值
|
|
APR_READ
|
打开文件为只读
|
0x00001
|
|
APR_WRITE
|
打开文件为只写
|
0x00002
|
|
APR_CREATE
|
如果文件不存在,创建一个新的文件
|
0x00004
|
|
APR_APPEND
|
允许将内容追加到文件的末尾,而不是重新覆盖
|
0x00008
|
|
APR_TRUNCATE
|
如果文件存在,将其长度设置为0
|
0x00010
本文关键:apache中的文件与目录(2)
相关方案
|