static int __init parse_int(char * s)//参数处理函数
{
int ret;
ret = get_option(&s, &setup_example_int);//内核为整数参数值的分析提供了函数 get_option 和 get_options
if (ret == 1) {
printk("setup_example_int=%d\n", setup_example_int);
}
return 1;
}
static int __init parse_string(char *s)
{
if (strlen(s) > 15) {
printk("Too long setup_example_string parameter, \n");
printk("maximum length is less than or equal to 15\n");
}
else {
memcpy(setup_example_string, s, strlen(s) + 1);
printk("setup_example_string=%s\n", setup_example_string);
}
return 1;
}
__setup("setup_example_string",setup_example_string);
Sysfs:
文字丢失

#include <linux/config.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/stat.h>
static int my_int_para = 0;
static char * my_string_para = "Hello, World";
static int __init exam_module_init(void)
{
printk("my_int = %d\n", my_int_para);
printk("my_string = '%s'\n", my_string_para);
return 0;
}
static void __exit exam_module_exit(void)
{
printk("my_int = %d\n", my_int_para);
printk("my_string = '%s'\n", my_string_para);
}
module_init(exam_module_init);
module_exit(exam_module_exit);
module_param(my_int_para, int, 0);//通过宏module_param可以挂到sysfs里面
MODULE_PARM_DESC(my_int_para, "An invisible int under sysfs");
module_param(my_string_para, charp, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH);
MODULE_PARM_DESC(my_string_para, "An visible string under sysfs");
MODULE_LICENSE("GPL");
**
sysctl:
Sysctl是一种用户应用来设置和获得运行时内核的配置参数的一种有效方式,通过这种方式,用户应用可以在内核运行的任何时刻来改变内核的配置参数,也可以在任何时候获得内核的配置参数,通常,内核的这些配置参数也出现在proc文件系统的/proc/sys目录下,用户应用可以直接通过这个目录下的文件来实现内核配置的读写操作,例如,用户可以通过
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-36628-9.html
中国和友好的同时应该防止形成和欧美形成全面对抗的局面
女性
马云的确是真心话呀