#include <linux/module.h>
#include <linux/moduleparam.h> /* Optional, to include module_param() macros */
#include <linux/kernel.h> /* Optional, to include prink() prototype */
#include <linux/init.h> /* Optional, to include module_init() macros */
#include <linux/stat.h> /* Optional, to include S_IRUSR ... */
static int myint = -99;
static char *mystring = "i'm hungry";
static int myintary[]= {1,2,3,4};
static char *mystrary[] = {"apple", "orange", "banana"};
static int nstrs = 3;
module_param(myint, int, S_IRUSR|S_IWUSR);
MODULE_PARM_DESC(myint, "A trial integer");
module_param(mystring, charp, 0);
module_param_array(myintary, int, NULL, 0444);
module_param_array(mystrary, charp, &nstrs, 0664);
static int __init hello_init(void)
{
int i;
printk(KERN_INFO "myint is %d/n", myint);
printk(KERN_INFO "mystring is %s/n", mystring);
printk(KERN_INFO "myintary are");
for(i = 0; i < sizeof(myintary)/sizeof(int); i++)
printk(" %d", myintary[i]);
printk("/n");
printk(KERN_INFO "mystrary are");
for(i=0; i < nstrs; i++)
printk(" %s", mystrary[i]);
printk("/n");
return 0;
}
static void __exit hello_exit(void)
{
}
module_init(hello_init);
module_exit(hello_exit);
运行:
insmod ./hello.ko myint=100 mystring="abc" myintary=-1,-2 mystrary="a","b"
dmesg输出:
myint is 100
mystring is abc
myintary are -1 -2 3 4
mystrary are a b
说明:
module_param() 和 module_param_array() 的作用就是让那些全局变量对 insmod 可见,使模块装载时可重新赋值。
module_param_array() 宏的第三个参数用来记录用户 insmod 时提供的给这个数组的元素个数,NULL 表示不关心用户提供的个数
module_param() 和 module_param_array() 最后一个参数权限值不能包含让普通用户也有写权限,否则编译报错。这点可参考 linux/moduleparam.h 中 __module_param_call() 宏的定义。
字符串数组中的字符串似乎不能包含逗号,否则一个字符串会被解析成两个
分享到:
相关推荐
三菱PLC QD75视频教程 定位模块教接线参数程序教学 带QD75中文手册 QD75 模块接线,参数设置,程序编写 一整套教程 第1集 QD75模块介绍讲解 第2集QD75模块接线讲解 第3集QD75参数详细设置讲解 第4集 QD75 P系列 ...
三菱PLC QD75视频教程 定位模块教接线参数程序教学 带QD75中文手册 QD75 模块接线,参数设置,程序编写 一整套教程 第1集 QD75模块介绍讲解 第2集QD75模块接线讲解 第3集QD75参数详细设置讲解 第4集 QD75 P系列 ...
LD75 模块接线,参数设置,程序编写 一整套教程 第1集 LD75模块介绍讲解 第2集 LD75模块接线讲解 第3集 LD75参数详细设置讲解 第4集 LD75 P系列 程序例子讲解 第5集 LD75 D系列 程序例子讲解 第6集 PSTRT指令例子...
该模块有三个参数可以通过命令行设置,下面是作者系统上的运行结果示例:# insmod ./module-param-exam.ko my_invisible_i
QD75 模块接线,参数设置,程序编写 一整套教程 第1集 QD75模块介绍讲解 第2集QD75模块接线讲解 第3集QD75参数详细设置讲解 第4集 QD75 P系列 程序例子讲解 第5集 QD75 D系列 程序例子讲解 第6集 PSTRT指令例子...
源码及最新模块、示例下载:https://coding.net/u/lsy9202/p/E-echarts/git。echarts的大名如果没有听过可以去百度一下,它是一个企业级的开源图表库,百度公司前端部门研发开源,它是一个web图表库,所以在易语言中...
C# 模块、工作流等集成领域自动执行下方法、参数数据传输示例 分布式模块信息同步,集成端同步执行。参数展示采用devexpress,默认留着bin可以直接运行
资源介绍:内存7z解压模块源码.版本 2.子程序 SevenZip解压文件, 整数型, , 解压文件,返回 0 = 成功 1 = 错误 2 = 取消 感谢原作者.参数 压缩包句柄, 整数型, , parent window handle.参数 压缩包地址, 文本型, , ...
三菱PLC QD75视频教程 定位模块教接线参数程序教学 带QD75中文手册 QD75 模块接线,参数设置,程序编写 一整套教程 第1集 QD75模块介绍讲解 第2集QD75模块接线讲解 第3集QD75参数详细设置讲解 第4集 QD75 P系列 ...
Q CPU(Q模式)QnACPU编程手册 公共指令 QD77MS程序例子 QD77MS16 缓存器表格手册 QD77MS2,4,16地址手册 QD77MS2程序例子+QD77MS4程序例子+QD77MS16程序例子
LD75 模块接线,参数设置,程序编写 一整套教程 第1集 LD75模块介绍讲解 第2集 LD75模块接线讲解 第3集 LD75参数详细设置讲解 第4集 LD75 P系列 程序例子讲解 第5集 LD75 D系列 程序例子讲解 第6集 PSTRT指令例子...
鸥姆龙NC113 NC413定位模块接线教程 NC113参数设置教程 NC113程序编程入门教程 CJ2M手册和NC113脉冲模块及程序
API的使用方法.ec API 设置颜色对话框模块.ec ard.ec Arhz_自动更新.ec Base64编解码.ec BASE64编解码模块.ec Bios.ec Bios 信息.ec BMP加密数据.ec BMP滤镜模块.ec BOX.EC BPL专用更新模块.ec BPL综合模 块.ec BPL...
基于swiper 8.4.5的实现的例子
下面这个模块是我使用易语言时写补丁最常用的一个模块(当然很多也是抄的),一开始我觉得bug肯定会很多,放出去肯定又会坑很多人,后来我发现坑坑更健康,当你明白一个东西的优缺点之后,你才会更好的选择你所需要...
这篇文章主要介绍了Python如何使用argparse模块处理命令行参数,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 介绍 argparse是python3标准库里用来处理命令行...
句柄获取示例(制作模块方便调用),使用的时候只要简单的调用一个自定义函数名就可以获取到指定软件的句柄,类名,跟名称。
在这个例子中,我们使用from turtle import *语句来导入turtle模块中的所有函数和变量。 然后,我们定义了一个名为my_goto的函数,该函数接受两个参数x和y,表示要移动到的位置。在这个函数中,我们首先使用penup()...