1. 用户态下编程: 通过main()来传递命令行参数
编写一个内核模块: 通过module_param()来传递命令行参数
2. module_param宏是Linux 2.6内核中新增的,该宏被定义在include/linux/moduleparam.h文件中
3. module_param使用了3个参数:变量名,它的类型,以及一个权限掩码用来做一个辅助的sysfs入口
module_param(name, type, perm);
name既是用户看到的参数名,又是模块内接受参数的变量;
type表示参数的数据类型,是下列之一:byte, short, ushort, int, uint, long, ulong, charp, bool, invbool;
perm指定了在sysfs中相应文件的访问权限。访问权限与linux文件爱你访问权限相同的方式管理,如0644,或使用stat.h中的宏如S_IRUGO表示。
4. 在使用宏之前,必须声明变量,典型地用法如下:
static unsigned int int_var = 0;
module_param(int_var, uint, S_IRUGO);
5. 声明一个数组参数, 使用 module_param_array(name,type,num,perm);
name 是数组名(也是参数名),
type 是数组元素的类型,
num 是一个整型变量,
perm 是通常的权限值.
6. 实例:sudo insmdo module_param.ko who=tiger times=4
refer: http://www.linuxidc.com/Linux/2011-02/32131.htm
时间: 2024-10-09 08:40:41