from:http://book.51cto.com/art/200810/93832.htm
7.5.3 测试新系统调用
这里我们编写一个测试程序来测试新添加的系统调用。通过对"7.2系统调用的访问手段"的学习,我们知道访问一个系统调用有3种方法,但这里可以使用的只有两种,因为C库中没有新添加系统调用的相应封装函数,只能采用其他两种方法。下面使用这两种方法分别进行测试。
1.使用通用接口
使用通用接口函数syscall()的测试代码如示例程序7.5所示。注意:这里包含的头文件unistd.h是libc提供的标准头文件,该头文件包含了通用接口函数syscall()的声明。
------------------------------------------ #define __NR_HLKW 294 int main(int argc,char ** argv) |
示例程序7.5:使用通用接口测试新系统调用
编译、运行的结果如图7.6所示。
图7.6 使用通用接口测试新添加的系统调用 |
2.使用内嵌汇编
使用内嵌汇编的测试代码如示例程序7.6所示。这里使用的头文件是内核源代码种的头文件,此头文件包含了宏定义_syscall0()的声明。
------------------------------------------ |
示例程序7.6:使用内嵌汇编测试新系统调用
编译、运行的结果如图7.7所示。
图7.7 通过内嵌汇编测试新添加的系统调用 |