APR函数库教程计划

APR函数库教程计划

        用作我写书的底稿了。主要是分析APR-1.2.2、APR-1.2.2-util、APR-1.2.2-iconv的源代码并给出相应函数的使用方法,函数库的使用方法等。

        至于APR,就是Apache Portable Runtime的意思。是一套ANSI C编写的跨系统函数库,在常见的平台上实现了相同的C函数接口。尽管Apache项目对它依赖有限,但是作为屏蔽了系统细节,并提供高质量的平台封装这一点上还是相当可取的。就现在看来APR对DSO对象,也就是对应UNIX-like系统的SO文件,或者是Win32平台的DLL文件。就是对系统底层的各种操作细节做了很好的封装。尽管我们自己也可以不使用APR来完成SO对象或者DLL的调用,但是就调用方式的成熟方面显然很难超越APR。

        现在开始分析APR代码的时间并不长,而且是Linux和Win32同时进行的,Linux的进度快一点,其实都是差不多的。我主要还是分析各类头文件的,对具体的C语言源文件的分析则并不着急。对头文件分析之后我一般会写一些实际调用的例子来测试一下,同时也是用于给出测试用例的。

        到现在为止因为进度刚刚开始,所以还没有什么太大的成果。感觉代码方面倒是恰到好处,我自从学了Java之后每次代码都是注释连篇不成体统。而APR项目中,虽然使用C语言编写,但是却用到了类似javadoc的注释格式,这是一个相当不错的主意。另外头文件中的注释较为详细,而C语言源文件中则少有注释。对于函数的格式也是有些规律的,比如大多数到处函数都有这样的格式:

APR_DECLARE(apr_status_t) func(aaa aaa,bbb bbb);

        函数的直接返回值一般都是用于描述函数执行状态的,而参数中的第一个参数是用来返回实际的函数计算值的。其后的参数则各有用处。这样做的一个好处是每个函数都有完善的可查询状态,另外,当一个函数需要返回多个值的时候也相对方便。当然,用C的人都是实用主义者,所以并不是所有函数都遵循这个规律。比如DSO对象的导出函数中有一个函数用来获取错误码的就不是这种格式。

        对于在Linux编译安装APR还是比较简单的。按照最easy的方式就可以安装成功,如果确实没有经验,可以按照如下方式:

tar xzvf apr-1.2.2.tar.gz
cd apr-1.2.2
./configure
make clean
make
make install

        这样就安装成功了。安装处会提供静态库和动态库,另外还提供完善的头文件。

        而在Windows系统下安装APR则麻烦一点。因为apr.h文件是需要configure出来的,而Windows并不含有这个工具。后来我实际安装了一下才发现,这个apr.h文件是从apr.hw文件复制过来的。而在使用APR函数库的时候根本就不需要#include这个文件,因为所有的其他头文件都已经自己包含过它了。

        今天先写到这里。以后再发贴的时候就是具体的关于某个细节了,现在对DSO部分已经有了一定的了解,TIME部分还写过一点测试用例。以后我会继续把有关的说明帖上来。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值