免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 630 | 回复: 0
打印 上一主题 下一主题

关于MODULE_PARM()宏 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-01-19 16:28 |只看该作者 |倒序浏览

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时没有传入参数,模块会使用这些默认值,而如果我们传入参数,则这些默认值将被替换。
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/48817/showart_467923.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP