当前位置: 技术问答>linux和unix
请问:怎么样才能让程序成为一个Linux内核的可装载模块?
来源: 互联网 发布时间:2015-06-07
本文导语: - | //hello.c #include #include int init_module() { printk("This is a modulen"); return 1; } void cleanup_module() { printk("Bye-beyn"); } | 不好意思,上面的写错了 //hello.c #ifnd...
-
|
//hello.c
#include
#include
int init_module()
{
printk("This is a modulen");
return 1;
}
void cleanup_module()
{
printk("Bye-beyn");
}
#include
#include
int init_module()
{
printk("This is a modulen");
return 1;
}
void cleanup_module()
{
printk("Bye-beyn");
}
|
不好意思,上面的写错了
//hello.c
#ifndef __KERNEL__
#define __KERNEL__
#endif
#ifndef MODULE
#define MODULE
#endif
#include
#include
int init_module()
{
printk("This is a modulen");
return 0;
}
void cleanup_module()
{
printk("Bye-byen");
}
init_module是模块装载时执行的函数
cleanup_module是模块卸掉时执行的函数
用下面的编译
gcc -I/usr/src/linux-2.4/include -c hello.c //linux-2.4可以换成你自己的源代码
//目录
用insmod ./hello.o 装载编译好的模块
然后cat /var/log/messages 你可以看到init_module中的"This is a module"
用rmmod hello 卸掉hello
然后cat /var/log/messages 你可以看到cleanup_module中的"Bye-bye"
//hello.c
#ifndef __KERNEL__
#define __KERNEL__
#endif
#ifndef MODULE
#define MODULE
#endif
#include
#include
int init_module()
{
printk("This is a modulen");
return 0;
}
void cleanup_module()
{
printk("Bye-byen");
}
init_module是模块装载时执行的函数
cleanup_module是模块卸掉时执行的函数
用下面的编译
gcc -I/usr/src/linux-2.4/include -c hello.c //linux-2.4可以换成你自己的源代码
//目录
用insmod ./hello.o 装载编译好的模块
然后cat /var/log/messages 你可以看到init_module中的"This is a module"
用rmmod hello 卸掉hello
然后cat /var/log/messages 你可以看到cleanup_module中的"Bye-bye"