珠一
caojiangfeng
热爱开源,热爱linux
全部博文(213)
hadoop(3)
perl脚本(4)
jvm调优工具(1)
网络编程(1)
用法与技术(10)
程序(12)
日志相关(1)
sed和awk(9)
循环(1)
有用的shell网址(0)
驱动开发(4)
我的shell脚本(9)
shell(12)
应用配置(11)
模块编程(10)
Kernel(8)
条件语句(2)
其他(6)
命令学习(20)
信号及其信号处理(3)
进程(7)
文件系统(1)
系统配置(12)
2018年(4)
2017年(1)
2015年(1)
2014年(5)
2013年(2)
2012年(2)
2011年(21)
2010年(82)
2009年(72)
2008年(23)
RHCE520
FIGHTERB
simiaoxi
lyanxha
huxuelin
liurhyme
wangxinm
bluesea6
联众集群
wb123456
ui56
uccom1
dahaosha
gu111356
cynthia
w3964549
a5940176
fah9394
分类: LINUX
2010-03-10 20:58:31
#include <linux/kernel.h> /* 内核关键头文件*/
#include <linux/module.h> /* 模块头文件*/ #include <linux/init.h> /* 初始化头文件*/ #include <linux/proc_fs.h> /* 建立proc文件必加头文件*/ int add(int i,int j) { return (i+j); }void fun(){ printk("This is in fun() function\n");} static int __init hello_init(void) {
fun(); printk(KERN_INFO"<1>Hello modules\n");
printk(KERN_INFO"<2>5+6=%d",add(5,6)); return; } static void __exit hello_exit(void) { printk("Leaving the kernel!Byebye\n"); } MODULE_LICENSE("BSD/GPL");/* 模块的发布声明*/ module_init(hello_init);/* 注册模块新增功能*/ module_exit(hello_exit);/* 注销模块新增功能*/
printk(KERN_INFO"<2>5+6=%d",add(5,6)); return; } static void __exit hello_exit(void) { printk("Leaving the kernel!Byebye\n"); } MODULE_LICENSE("BSD/GPL");
module_init(hello_init);
module_exit(hello_exit);
MODULE_AUTHOR(cjf);
obj-m += hello.o all: make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules clean: make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean
上一篇:一个模拟管道的例子
下一篇:linux下的进程状态
登录 注册