您好,登錄后才能下訂單哦!
這篇文章給大家介紹Linux內核代碼,傳參數,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
一、源代碼
1.1 temp_main.c
#include <linux/netfilter.h> #include <linux/netfilter_ipv4.h> #include <linux/module.h> #include <linux/moduleparam.h> #include <linux/kernel.h> #include <linux/inetdevice.h> #include <linux/string.h> #include <net/route.h> #include <linux/inet.h> #include <linux/netfilter.h> #include <linux/netfilter_ipv4.h> #include <linux/module.h> #include <linux/moduleparam.h> #include <linux/kernel.h> #include <linux/inetdevice.h> #include <linux/string.h> #include <net/route.h> #include <linux/inet.h> #include <linux/ip.h> #include <linux/tcp.h> #include <net/checksum.h> #include <net/tcp.h> #include <net/ip.h> #define LOG_INFO(fmt,args...) printk(KERN_INFO fmt, ##args) static int int_var = 0; static const char *str_var = "default"; static int int_arr[6]; int narr; module_param(int_var, int, 0644); MODULE_PARM_DESC(int_var, "A integer variable"); module_param(str_var, charp, 0644); MODULE_PARM_DESC(str_var, "A string variable"); module_param_array(int_arr, int, &narr, 0644); MODULE_PARM_DESC(int_arr, "A integer array"); static int init_marker(void) { int i; LOG_INFO("int_var: %d.\n", int_var); LOG_INFO("str_var: %s.\n", str_var); for (i=0; i<narr; ++i) { LOG_INFO("int_arr[%d]: %d.\n", i, int_arr[i]); } return 0; } static void exit_marker(void) { } module_init(init_marker); module_exit(exit_marker);
1.2 Makefile
obj-m := temp.o temp-objs := temp_main.o KERNELDIR = /lib/modules/$(shell uname -r)/build PWD := $(shell pwd) default: $(MAKE) -C $(KERNELDIR) M=$(PWD) modules clean: $(MAKE) -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean install: cp temp.ko ../
二、運行
insmod temp.ko int_var=123 str_var=helloworld int_arr=100,200,300
三、運行結果
關于Linux內核代碼,傳參數就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。