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 | ||
|
APR_BINARY |
打开的不是文本文件,而是二进制文件,在UNIX上,该标志将被忽略 |
[1] [2] [3] [4] [5] [6] [7] [8] [9] 责任编辑 webmaster 相关链接 发表
|









