linuxカーネルモジュールプログラミングのモジュールパラメータ(四)
マクロ経由module_paramはモジュールをロードするときにモジュールに渡すためのモジュールパラメータを指定します.
module_param(name, type, perm)
nameはモジュールパラメータの名前です
typeはこのパラメータのタイプで、一般的な値:bool、int、charp(文字列型)
permはモジュールパラメータへのアクセス権です
permの一般的な値:
S_IRUGO:任意のユーザーが/sys/moduleに表示されるこのパラメータに読み取り権限を持つ
S_IWUSR:rootユーザーが/sys/moduleに表示されるこのパラメータを変更できるようにする
例:
int a =3;//初期化可能、または
char *st:
module_param(a,int,S_IRUGO);
module_param(st,charp,S_IRUGO);
サンプルコードは次のとおりです.
彼のコンパイルと実行は私の前の文章を見ることができます.ここでは説明を繰り返しません.実行結果は以下の通りです.
module_param(name, type, perm)
nameはモジュールパラメータの名前です
typeはこのパラメータのタイプで、一般的な値:bool、int、charp(文字列型)
permはモジュールパラメータへのアクセス権です
permの一般的な値:
S_IRUGO:任意のユーザーが/sys/moduleに表示されるこのパラメータに読み取り権限を持つ
S_IWUSR:rootユーザーが/sys/moduleに表示されるこのパラメータを変更できるようにする
例:
int a =3;//初期化可能、または
char *st:
module_param(a,int,S_IRUGO);
module_param(st,charp,S_IRUGO);
サンプルコードは次のとおりです.
#include <linux/module.h>
#include <linux/init.h>
MODULE_LICENSE("GPL");
static char *name = "David Xie";
static int age = 30;
module_param(age, int, S_IRUGO);
module_param(name, charp, S_IRUGO);
static int hello_init()
{
printk(KERN_EMERG"name:[%s]
",name);
printk(KERN_EMERG"age:[%d]
",age);
return 0;
}
static void hello_exit()
{
printk(KERN_INFO"module exit
");
}
module_init(hello_init);
module_exit(hello_exit);
彼のコンパイルと実行は私の前の文章を見ることができます.ここでは説明を繰り返しません.実行結果は以下の通りです.