下面用代码说明:
static int procfile_read(char *buffer,代码主要来自这个实例,虽然是2.4内核的,可是效果在999之内还是不错的。
char **buffer_location,// Buffer
off_t offset, // current offset to read
int buffer_length,
int *eof,
int *data)
{
static char mybuffer[128];
static int readcount = 0;
int len;
if(offset > 0){
return 0;
}
readcount ++;
len = sprintf(mybuffer, "This is %d time to read me.\n", readcount);
*eof = 1;
return len;
}
需要注意的是读取函数的参数发生了变化。不过,我的编译器还是一再提醒我注册时指针参数不匹配的问题,不知道指的是哪一个参数?
注册:
create_proc_read_entry("hello", 0, NULL, procfile_read, NULL);
注销:
remove_proc_entry("hello", NULL);
这里为了简单都采用了默认的参数,直接放到了/proc/hello这个位置上。
采用文件名来操作的确比使用inode方便的多了。
1 条评论:
hi
发表评论