关于MODULE_PARM()宏

Author: 像风一样自由    Link: http://blog.chinaunix.net/u1/48817/

MODULE_PARM ()宏定义在linux/module.h中,用于模块参数传递。
如果我们想用这个宏来传递命令行参数,那么在我们的模块中定义一个全局变量。在insmod模块时,便可以用参数的形式,将具体的实参传递给模块中的那个全局变量。
MODULE_PARM(name,type)有两个参数,一个是这个全局变量的名称,另一个是这个全局变量的类型。
而他的类型有一下几种:
b:比特型
h:短整型
i:整型
l:长整型
s:字符串型
在传递字符串型的参数时,这个全局变量需要在模块中用Char *来声明!insmod会自动为其分配内存空间。
例如:
int a = 3;
char *st;
MODULE_PARM(a,"i");
MODULE_PARM(st,"s");
在insmod是我们加这样的参数:
insmode a.o "a = 3", "st = hello world"

MODULE_PARM ()也支持数组类型。用短线’-'把两个数字分开,分别表示数组参数中的最小位数和最大位数。

例如:
int array[8];
MODULE_PARM (array,"1-8i");
在命令行我们使用加这样的参数:
insmod a.o "array = 38745,123,4000″

在那和模块编程时,我们往往给这些全局变量以默认值,如果insmod时没有传入参数,模块会使用这些默认值,而如果我们传入参数,则这些默认值将被替换。

 

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值