- 论坛徽章:
- 0
|
#if defined(CONFIG_SMP)
#define __SMP__
#endif
#if defined(CONFIG_MODVERSIONS)
#define MODVERSIONS
#include <linux/modversions.h>
#endif
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/stat.h>
#include <linux/fcntl.h>
#define BUFLEN 50
MODULE_LICENSE("GPL");
int errno;
#define __KERNEL_SYSCALLS__
#include <linux/unistd.h>
int init_module(void)
{
int fd,n;
char* buffer=NULL;
struct file *file=filp_open("/usr/src/Hello",O_RDWR|O_CREAT,0666);
if(file->f_op->write)
{
printk(KERN_DEBUG "AAAAA!\n");
file->f_op->write(file,"11111",5,&file->f_pos);
}
return 0;
}
void cleanup_module(void)
{
printk(KERN_DEBUG "Sophia: Good-bye, kernel!\n");
}
编译:
gcc -D__KERNEL__ -I/usr/src/linux-2.4.20-8/include/ -DMODULE -Wall -O2 -c test.c -o test.o
通过,没有报错
insmod test.o能够正确加载,并能够创建文件Hello
但是通过dmesg|tail查看日志,发现
if(file->f_op->write)
{
printk(KERN_DEBUG "AAAAA!\n");
file->f_op->write(file,"11111",5,&file->f_pos);
}没有执行
不知道为什么没有将11111写到文件里,请高手指导下啊! |
|