There is a linux moduel of hello world.
#include <linux/init.h>
#include <linux/module.h>
MODULE_LICENSE("Dual BSD/GPL");
static int hello_init(void){
printk(KERN_ALERT "Hello, world/n");
return 0;
}
static void hello_exit(void){
printk(KERN_ALERT "Good bye, cruel world/n");
}
module_init(hello_init);
module_exit(hello_exit);
How to get parameter from command line?
#include <linux/module.h>
#include <linux/moduleparam.h>
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/stat.h>
MODULE_LICENSE("GPL");
MODULE_AUTHOR("LM");
static short int myshort = 1;
static int myint = 420;
static long int mylong = 9999;
static char *mystring = "blah";
/*
* module_param(foo, int, 0000)
* The first param is the parameters name
* The second param is it's data type
* The final argument is the permissions bits,
* for exposing parameters in sys fs(if non-zero)at a later stage.
*/
module_param(myshort, short, S_IUSR | S_IWUSR | S_IRGRP | S_IWGRP);
MODULE_PARAM_DESC(myshort, "A short integer");
module_param(myint, int, S_IUSR | S_IWUSR | S_IRGRP | S_IROTH);
MODULE_PARAM_DESC(myint, "An integer");
module_param(mylong, long, S_IUSR);
MODULE_PARAM_DESC(mylong, "A long integer");
module_param(mystring, charp, 0000);
MODULE_PARAM_DESC(mystring, "A character string");
static int __init parm_init(){
printk(KERN_ALERT "/n========/n");
printk(KERN_ALERT "myshort is a short integer: %hd/n", myshort);
printk(KERN_ALERT "myint is an integer: %d/n", myint);
printk(KERN_ALERT "mylong is a long integer: %ld/n", mylong);
printk(KERN_ALERT "mystring is a string: %s/n", mystring);
return 0;
}
static void __exit parm_exit(){
printk(KERN_ALERT "Goodbye, world/n");
}
module_init(parm_init);
module_exit(parm_exit);
To put the parameters from command line, use the following command.
root# insmod hello-5.o mystring="bebop" mybyte=255 myintArray=-1
2008 May 6th Tuesday (五月 六日 火曜日)
最新推荐文章于 2021-03-24 17:56:44 发布