1:簡單**
#include#includemodule_license(
"gpl");
module_author(
"jiuyueguang");
module_description(
"****** module driver");
static
int hello_init(void
)static
void hello_exit(void
)module_init(hello_init);
module_exit(hello_exit);
2:檢視printk輸出資訊
dmesg | tail
3:帶引數型別的模組簡單**
#include#includemodule_license(
"gpl");
module_author(
"jiuyueguang");
module_description(
"****** module driver");
static
char *name="
no name";
static
int age=0
;static
int hello_init(void
)static
void hello_exit(void
)module_init(hello_init);
module_exit(hello_exit);
module_param(name,charp,s_irugo);
module_param(age,
int,s_irugo);
安裝帶引數的模組:
sudo insmod hello_param.ko
安裝的時候沒有加引數,採用程式中的預設值輸出:
hello word name=no name and age=0
安裝的時候加引數:
sudo insmod hello_param.ko name='jiuyueguang
' age=25
輸出:
hello word name=jiuyueguang and age=25
4:我自己的makefile
ifeq ($(kernelrelease),)kerneldir ?= /lib/modules/$(shell uname -r)/build
pwd :=$(shell pwd)
modules:
$(make) -c $(kerneldir) m=$(pwd) modules
modules_install:
$(make) -c $(kerneldir) m=$(pwd) modules_install
clean:
rm -rf *.o *~ core .depend .*.cmd *.ko *.mod.c .tmp_versions module* module* a.out
.phony: modules modules_install clean
else
obj-m :=hello_param.o //每次修改這裡就夠了
endif
nginx實現簡單模組開發
需要的預備知識不多,有如下幾點 有過一些 c 語言的程式設計經歷 知道 nginx 是幹嘛的,並有過編寫或改寫 nginx 的配置檔案的經歷。ok,就這兩點就夠了 好了,那就開始吧 我們的目標,就是你在瀏覽器裡輸入http localhost hello world時,顯示 hello world當...
RequireJs打包簡單模組打包
本文講解的是requirejs對檔案合併與壓縮的實現方法。requirejs提供了乙個打包與壓縮工具r.js,r.js的壓縮工具使用uglifyjs進行壓縮的。requirejs對互相依賴模組進行合併與壓縮,可以對js,css壓縮,甚至可以對整個專案進行打包。r.js是基於nodejs的,所以本機電...
Lua動態載入模組
function reload modulename package.loaded modulename nil require modulename end 使用以上 即可重新載入乙個檔案。這樣修改完lua 後,可以不用重啟程式立刻生效。模組a a function a.test1 print 1...