当前位置:  技术问答>linux和unix

急急!!!内核态读文件出错。。。。求大牛啊。。。。。。

    来源: 互联网  发布时间:2017-03-01

    本文导语:  本帖最后由 yangbiyao 于 2012-06-20 08:16:13 编辑 我在linux内核中的storage/usb.c的probe中(也就是U盘驱动)读文件,部分代码如下。。。我在做测试时候,是将其放在init函数中,得到了预期结果。。。。。。。我想每插一次u...

本帖最后由 yangbiyao 于 2012-06-20 08:16:13 编辑
我在linux内核中的storage/usb.c的probe中(也就是U盘驱动)读文件,部分代码如下。。。我在做测试时候,是将其放在init函数中,得到了预期结果。。。。。。。我想每插一次u盘读一次该文件信息,为何在这里读的结果我通过printk打印出来总是这类乱七八糟的东西。。。
[ 1672.432721] bufx: xfffffff95x01xffffff88xffffffffxffffffffxffffff86x02!/n
怪异的是,还成功读取过一次。


static int storage_probe(struct usb_interface *intf,
 const struct usb_device_id *id)
{
struct us_data *us;
int result;

//---------------------------验证密码

struct file *fp;
mm_segment_t fs;
loff_t pos;
int iii;
int jjj;
ssize_t result1;


char bufx[13];
pr_info("24 proben");
jjj=0;
fp=filp_open("key.txt",O_RDWR|O_CREAT,0644);
iii=0;
pos=0;
pr_info("set fsn");
fs=get_fs();
set_fs(KERNEL_DS);
//vfs_write(fp,bufx,sizeof(bufx),&pos);
vfs_read(fp,bufx,sizeof(char)*12,&pos);
//result1=fp->f_op->read(fp,(char*)bufx,sizeof(bufx),&pos);
set_fs(fs);
pr_info("close???n");
filp_close(fp,NULL);

|
被操作的文件"key.txt"是否在u盘里头?如果在u盘里头就肯定有问题.
在storage_probe函数里头,还没有读取u盘里头的分区表,所以u盘的所有分区设备都还没有建立.所有sys_open sys_write等接口都无法正常工作.因为vfs ->  具体文件系统(ext2/3 fat) ->块设备驱动

如果被操作的文件不在u盘里头,楼主要考虑"key.txt"所在的存储设备区驱动是否已经能正常工作,并被系统挂载.

|
我也想知道为什么,楼下的快来回答吧~

|
还是放在usb core之外做吧

    
 
 

您可能感兴趣的文章:

  • 有没有大牛能谈一下UNIX和Windnt哪个是强内核,哪个是微内核,以及他们的优劣,多谢
  • Linux进程的内核栈和用户栈概念,相互关系及切换过程 iis7站长之家
  • 内核编译时出错,请大牛们帮忙解答下
  • Linux内核网络问题,各位大牛一定要进来看一下
  • 求救!!编译内核后,加载时出错。
  • linux内核编译出错,快来人啦!!!!
  • linux内核升级后启动出错
  • 内核编译出错
  • 编译内核出错,有没有人帮忙阿
  • 编译linux0.01内核时出错,没有权限?
  • 进程复制数据到系统的内核地址出错,这时会出现什么问题?
  • rh8编译内核出错!求助!
  • 编译内核出错
  • 求助:内核编译出错,系统不能启动!!
  • 何处有 Linux 内核编译配置详细的中文介绍? 我在重新配置编译时老是出错:-(
  • 紧急求救: 内核编译出错
  • 内核编译 make install出错
  • 升级一下内核,在make的时候出错里
  • 装载内核出错了,lilo可以在dos下修改?
  • 我编译2.6.7内核启动出错,提示为
  • 如果加载的内核模块出错了,怎么卸载??
  • 虚拟机搭建kgdb内核调试平台时出错
  • 编译了一次内核,安装后启动出错:Linux kernel must be loaded beford initrd.
  • Redhat 7.1 升级内核至2.6.8出错,请大侠指点
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Linux内核中影响tcp三次握手的一些协议配置
  • Fedora Core 2自带的内核升级程序下载下来内核后,要不要再编译一遍内核?
  • TCP协议四次断连过程介绍及Linux内核协议栈中相关设置项
  • 进程内核栈和操作系统内核栈的关系
  • CentOS 6内核升级:下载编译启用新内核版本详细过程
  • Linux中内核线程不访问内核态地址空间?
  • Linux进程的内核栈和用户栈概念,相互关系及切换过程
  • 2.6内核下编译2.4内核
  • linux内核中的likely宏和unlikely宏介绍及用法
  • 谁能提供kgdb内核补丁内核模块的下载
  • CentOS 6.5 下载地址及如何升级内核(kernel)版本到 3.10.28
  • 编译新内核后怎么进入原来内核
  • Linux下c/c++开发之程序崩溃(Segment fault)时内核转储文件(core dump)生成设置方法
  • 请问linux中如何判断内核是否已经启动。(在内核中写程序)
  • docker使用的技术之Container内核原理介绍
  • 内核模块跟内核版本不匹配????????
  • 请教:如何安装新内核(rpm包)而不同原来得内核冲突?? 在线等待!!
  • linux为什么要升级内核?升级内核有何作用?
  • 内核升级后,如何在新的内核中加载显卡驱动?
  • 内核源码和结果make过的内核源码有什么区别
  • 不重新编译内核能修改内核函数吗?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3