当前位置: 技术问答>linux和unix
设计一个在/proc中实现clock文件的模块,该clock文件只支持文件的read操作,该操作访问内核变量xtime,很简单的一个内核模块实验,我第一
来源: 互联网 发布时间:2015-05-25
本文导语: 设计一个在/proc中实现clock文件的模块,该clock文件只支持文件的read操作,该操作访问内核变量xtime,很简单的一个内核模块实验,我第一次接触内核模块, 编译时有好多错误不会改,大家帮帮忙! 这是《Linux操作系...
设计一个在/proc中实现clock文件的模块,该clock文件只支持文件的read操作,该操作访问内核变量xtime,很简单的一个内核模块实验,我第一次接触内核模块,
编译时有好多错误不会改,大家帮帮忙!
这是《Linux操作系统内核实习》上的一个实验,请大家看看我的代码和编译结果:
(我装的是RedHat Linux 9.0)Kernel Version Information:2.4.20-8
代码:(p3clock1.c)
#include
#include
#include
#include
#include
#include
#define BUF_LEN 100
int read_clock( char *buf_not_used,
char **my_buf_ptr,
off_t offset,
int buf_len,
int *eof_flag,
void *data_not_used )
{
struct timeval ktv;
static char my_buf[BUF_LEN];
if(offset > 0) return 0;
buf_len = BUF_LEN;
*my_buf_ptr = my_buf;
cli();
ktv = xtime;
sti();
sprintf(my_buf, "%ld %ld", ktv.tv_sec, ktv.tv_usec);
for(buf_len=0; buf_len data = clock_file_data;
// clock_file->read_proc = proc_read_foobar;
// clock_file->write_proc = NULL;
// clock_file->owner = THIS_MODULE;
}
void cleanup_module(void)
{
//proc_unregister(&proc_root, clock_proc_file.low_ino);
remove_proc_entry("clock",&proc_root);
}
编译时有好多错误不会改,大家帮帮忙!
这是《Linux操作系统内核实习》上的一个实验,请大家看看我的代码和编译结果:
(我装的是RedHat Linux 9.0)Kernel Version Information:2.4.20-8
代码:(p3clock1.c)
#include
#include
#include
#include
#include
#include
#define BUF_LEN 100
int read_clock( char *buf_not_used,
char **my_buf_ptr,
off_t offset,
int buf_len,
int *eof_flag,
void *data_not_used )
{
struct timeval ktv;
static char my_buf[BUF_LEN];
if(offset > 0) return 0;
buf_len = BUF_LEN;
*my_buf_ptr = my_buf;
cli();
ktv = xtime;
sti();
sprintf(my_buf, "%ld %ld", ktv.tv_sec, ktv.tv_usec);
for(buf_len=0; buf_len data = clock_file_data;
// clock_file->read_proc = proc_read_foobar;
// clock_file->write_proc = NULL;
// clock_file->owner = THIS_MODULE;
}
void cleanup_module(void)
{
//proc_unregister(&proc_root, clock_proc_file.low_ino);
remove_proc_entry("clock",&proc_root);
}
|
用insmod ./clock
|
他用的是老内核的方法!
insmod ./p3clock1.o
rmmod p3clock1
insmod ./p3clock1.o
rmmod p3clock1