ZZ:7.5.3 测试新系统调用

from:http://book.51cto.com/art/200810/93832.htm

7.5.3  测试新系统调用

这里我们编写一个测试程序来测试新添加的系统调用。通过对"7.2系统调用的访问手段"的学习,我们知道访问一个系统调用有3种方法,但这里可以使用的只有两种,因为C库中没有新添加系统调用的相应封装函数,只能采用其他两种方法。下面使用这两种方法分别进行测试。

1.使用通用接口

使用通用接口函数syscall()的测试代码如示例程序7.5所示。注意:这里包含的头文件unistd.h是libc提供的标准头文件,该头文件包含了通用接口函数syscall()的声明。

------------------------------------------
#include "stdio.h"
#include "unistd.h"
     #define __NR_HLKW 294
     int main(int argc,char ** argv)
{
printf("syscall,jiffies:%u\n",syscall(__NR_HLKW));
return(0);
}
------------------------------------------

示例程序7.5:使用通用接口测试新系统调用

编译、运行的结果如图7.6所示。

  
图7.6  使用通用接口测试新添加的系统调用

2.使用内嵌汇编

使用内嵌汇编的测试代码如示例程序7.6所示。这里使用的头文件是内核源代码种的头文件,此头文件包含了宏定义_syscall0()的声明。

 ------------------------------------------
1         #include "stdio.h"
2         /*unistd.h must be the curent kernel`s header file*/
3         #include "/home/lucas/Linux-2.6.15.5/include/asm/unistd.h"

5         static int errno;
6         _syscall0(long,HLKW);

8         int main(int argc,char ** argv)
9         {
10             printf("macro ,jiffies:%u\n",HLKW());
11             return(0);
12        }
------------------------------------------

示例程序7.6:使用内嵌汇编测试新系统调用

编译、运行的结果如图7.7所示。

 
图7.7  通过内嵌汇编测试新添加的系统调用

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值