免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1554 | 回复: 0
打印 上一主题 下一主题

写了个简单的模块,内核函数为何没有运行 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-10-07 12:34 |只看该作者 |倒序浏览
#if   defined(CONFIG_SMP)   
  #define   __SMP__   
  #endif   
   
  #if   defined(CONFIG_MODVERSIONS)   
  #define   MODVERSIONS   
  #include   <linux/modversions.h>   
  #endif   
   
  #include   <linux/kernel.h>   
  #include   <linux/module.h>   
  #include   <linux/stat.h>           
  #include   <linux/fcntl.h>   
   
  #define   BUFLEN   50   
   
  MODULE_LICENSE("GPL");     
  int errno;
  #define   __KERNEL_SYSCALLS__   
  #include   <linux/unistd.h>   
   
   
  int   init_module(void)   
  {   
  int   fd,n;   
  char*   buffer=NULL;   
  struct file *file=filp_open("/usr/src/Hello",O_RDWR|O_CREAT,0666);   
  if(file->f_op->write)
{
   printk(KERN_DEBUG   "AAAAA!\n");   
  file->f_op->write(file,"11111",5,&file->f_pos);
}
  return   0;   
  }   
  void   cleanup_module(void)   
  {   
  printk(KERN_DEBUG   "Sophia:   Good-bye,   kernel!\n");   
  }   
   
  编译:   
  gcc   -D__KERNEL__   -I/usr/src/linux-2.4.20-8/include/   -DMODULE   -Wall   -O2   -c   test.c   -o   test.o   
  通过,没有报错
insmod    test.o能够正确加载,并能够创建文件Hello
但是通过dmesg|tail查看日志,发现
  if(file->f_op->write)
{
   printk(KERN_DEBUG   "AAAAA!\n");   
  file->f_op->write(file,"11111",5,&file->f_pos);
}没有执行
不知道为什么没有将11111写到文件里,请高手指导下啊!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP