环境 产品: AIX
平台: pSeries, AIX
软件版本:AIX 5.2
问题 AIX 5.2提供了两种不同类型的AIO函数库,本文针对这两种函数库介绍如何在系统中配置及使用。
解答 AIX 5.2提供了两种不同类型的异步IO(AIO)核心扩展函数(Kernel Extension),即AIX传统的AIO和POSIX 标准的AIO。
虽然两种类型的AIO函数名称相同,但在aio.h中作了重新定义,以便两种函数均可使用libc.a 函数库。POSIX AIO也可以通过librt.a
调用。POSIX AIO 是编译时使用的默认选项。如需使用AIX传统的AIO,可通过新增加的宏定义_AIO_AIX_SOURCE完成。
例如,使用POSIX AIO之前先将其加载:
mkdev -l posix_aio
使用POSIX AIO的应用程序需包含aio.h文件:
#include <sys/aio.h>
又如,使用AIX传统的 AIO之前需将其加载:
mkdev -l aio
使用AIX传统的 AIO的应用程序需包含下列定义:
#define _AIO_AIX_SOURCE
#include <sys/aio.h>
或在编译命令行加入:
xlc ... -D_AIO_AIX_SOURCE ... legacy_aio_program.c
如果需要将POSIX AIO 核心扩展函数库在系统启动时自动加载,可用:
smit chgposixaio
将菜单中的选项"State to be configured at system restart" 由 "defined"改为 "available",按下回车键后即可生效。
对于AIX传统的AIO,可通过
smit chgaio
以相同方法修改菜单中的选项。