当前位置: 技术问答>linux和unix
怎样把module的数据写入proc文件
来源: 互联网 发布时间:2015-02-21
本文导语: 我在用netfilter框架的钩子实现ip包头的分析(这是用模块实现的)。 请问分析的数据怎样才能写入到proc文件中。 是否有详细的资料? | 2.4的简单方法: 初始化module时/需要时: { struct proc_dir_e...
我在用netfilter框架的钩子实现ip包头的分析(这是用模块实现的)。
请问分析的数据怎样才能写入到proc文件中。
是否有详细的资料?
请问分析的数据怎样才能写入到proc文件中。
是否有详细的资料?
|
2.4的简单方法:
初始化module时/需要时:
{
struct proc_dir_entry *ent;
int err;
ent = create_proc_entry(PROC_FS_NAME, S_IFREG | S_IRUGO, 0);
if (ent) {
ent->nlink = 1;
ent->read_proc = procfile_read;
ent->write_proc = procfile_write;
err = 0;
} else {
err = -EINVAL;
printk("error in create proc entry [%s]n", PROC_FS_NAME);
}
.....
return err;
}
然后实现procfile_read:
定义:
static int procfile_read(char *buffer, char **buffer_location, off_t offset,
int buffer_length, int *eof, void *data)
往buffer_location里填入需要的数据, 然后在用户空间读取.
参照一下 kernel source 中 include/linux/procfs.h 和其他代码看看吧, 目前没有环境测试, 呵呵
初始化module时/需要时:
{
struct proc_dir_entry *ent;
int err;
ent = create_proc_entry(PROC_FS_NAME, S_IFREG | S_IRUGO, 0);
if (ent) {
ent->nlink = 1;
ent->read_proc = procfile_read;
ent->write_proc = procfile_write;
err = 0;
} else {
err = -EINVAL;
printk("error in create proc entry [%s]n", PROC_FS_NAME);
}
.....
return err;
}
然后实现procfile_read:
定义:
static int procfile_read(char *buffer, char **buffer_location, off_t offset,
int buffer_length, int *eof, void *data)
往buffer_location里填入需要的数据, 然后在用户空间读取.
参照一下 kernel source 中 include/linux/procfs.h 和其他代码看看吧, 目前没有环境测试, 呵呵