第一人入门字符设备驱动程序的问题
在Linux高级开发技术里面,第二章学了一点内核驱动,虽然里面排版巨烂,但勉强能很懂 
 按照它的程序,自己敲到机子上之后,编译总是能不过,提示 
 struct   file_opterations有错不知道为啥,是不是结构体有问题???   
 请大虾看一下源码:   
 #include    <linux/types.h>  
 #include    <linux/fs.h>  
 #include    <linux/errno.h>    
 #define   DEFAULT   0     
 unsigned   int   dev_major   =   0;   
 static   int   dev_read(struct   inode   *node,struct   file*file,char*   buf,int   i) 
 { 
 	int   a,b; 
 	char*   c   =    "hello "; 
 	int   j; 
 	if(verify_area(VERIFY_WRITE,buf,i)   ==   DEFAULT) 
 		return   DEFAULT; 
 /*	get_user(a,int(buf[0])); 
 	get_user(b,int(buf[1])); 
 	a   =   a+b; 
 */	 
 	for(j   =   0;j <i;j++) 
 	{ 
 		buf[j]   =   c[j]; 
 	} 
 	return   i; 
 }   
 static   int   dev_write(struct   inode   *node,struct   file*file,const   char*   buf,int   count) 
 { 
 	return   count; 
 }   
 static   int   dev_open(struct   inode   *node,struct   file*file) 
 { 
 	/*MOD_INC_USE_COUNT;*/ 
 	return   0; 
 }   
 static   void   dev_release(struct   inode   *node,struct   file*file) 
 { 
 	/*MOD_DEC_USE_COUNT;*/ 
 }   
 struct   file_operations   dev_fops   =   { 
 	NULL,dev_read,dev_write,NULL, 
 	NULL,NULL,NULL,dev_open, 
 	dev_release,NULL,NULL,NULL,NULL 
 };   
 int   init_module() 
 { 
 	int   result; 
 	result   =   register_chrdev(0, "test ",&dev_fops); 
 	if(result    <   0) 
 	{ 
 		printk( "Wrong! "); 
 		return   result; 
 	} 
 	if(dev_major   ==   0) 
 		dev_major   =   result; 
 	return   0; 
 }   
 void   cleanup_module() 
 { 
 	unregister_chrdev(dev_major, "mydev "); 
 }     
 应用程序的main函数: 
 #include    <stdio.h>  
 #include    <sys/types.h>  
 #include    <sys/stat.h>  
 #include    <fcntl.h>  
 main() 
 { 
 	int   ret; 
 	int   buf[10]; 
 	ret   =   open( "/dev/mydev ",O_RDWR); 
 	if(ret   ==   -1) 
 	{ 
 		printf( "cann 't   open   mydev "); 
 		exit(0); 
 	} 
 	/*printf( "please   input   two   number! "); 
 	scanf( "%d ",buf); 
 	scanf( "%d ",buf+1);*/ 
 	read(ret,buf,1); 
 	printf( "the   result   is:%s ",buf); 
 	close(ret);	 
 }     
 帮忙看下,有什么问题 
 还有呀,就是内核函数怎么查询??? 
 用man   put_user说查不到此函数,用man   2   put_user也查不到 
 不知道有什么手册没???   
 谢了
------解决方案--------------------struct file_operations dev_fops = { 
 	NULL,dev_read,dev_write,NULL, 
 	NULL,NULL,NULL,dev_open, 
 	dev_release,NULL,NULL,NULL,NULL 
 }; 
 改成下面这个试试   
 struct file_operations dev_fops ={ 
  read: dev_read, 
  write: dev_write, 
  open: dev_open, 
  release:dev_release 
 }; 
------解决方案--------------------内核函数怎么查询??? 
 建议楼主装一下SOURCE INSIGHT,然后建个工程,直接把LINUX内核代码添加进去~~~ 
 以后直接查找就可以了~~~