小弟因工作需要,要写Linux的设备驱动,正学习中,一起没搞过Linux方面的开发,没经验,现碰到一个简单问题,请多多指点
土豆 2003-11-28 11:06:19 我写了一个非常简单的使用proc的小例子mytest.c,希望能在Linux下运行,Linux使最新的Redhat9,下面是源代码:
#ifndef MODULE
#define MODULE
#endif
#include <linux/module.h>
#include <linux/types.h>
#include <linux/proc_fs.h>
int test_read_proc(char *buf, char **start, off_t offset,int count, int *eof, void *data)
{
int len;
len = sprintf(buf,"\nOnly a test\n");
*eof = 1;
return len;
}
int init_module(void)
{
create_proc_read_entry("test2003",
0,
NULL, /* parent dir */
test_read_proc,
NULL /* client data */);
return 0;
}
void cleanup_module(void)
{
remove_proc_entry("test2003", NULL /* parent dir */);
}
可是一编译就出错,而起报的错误报到头文件中了。In file included from mytest.c:7:
/usr/include/linux/proc_fs.h:70: parse error before "atomic_t"
/usr/include/linux/proc_fs.h:72: parse error before "rdev"
/usr/include/linux/proc_fs.h:187: parse error before "kdev_t"
/usr/include/linux/proc_fs.h:203: parse error before "void"
更有甚者,我即使即使一个空的init_module和clearup_module,仅仅包含proc_fs.h也出同样的错误,如下:
#ifndef MODULE
#define MODULE
#endif
#include <linux/module.h>
#include <linux/types.h>
#include <linux/proc_fs.h>
int init_module(void)
{
return 0;
}
void cleanup_module(void)
{
}
请熟悉此道的朋友指点指点,领我进门,分是小事,要多少加多少,我不胜感激。