免费注册 查看新帖 |

Chinaunix

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

硬盘读写的问题. [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-01-25 10:14 |只看该作者 |倒序浏览
linux里C语言绕过文件系统直接读写硬盘怎么做,哪位给个思路,谢了!

论坛徽章:
0
2 [报告]
发表于 2005-01-25 10:37 |只看该作者

硬盘读写的问题.

帮你顶
偶也想看看,感觉可行性不大

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
3 [报告]
发表于 2005-01-25 10:50 |只看该作者

硬盘读写的问题.

只能自己写个内核驱动加载,在驱动接口中直接对I/O端口和DMA操作
用户级控制不了

论坛徽章:
0
4 [报告]
发表于 2005-01-25 10:54 |只看该作者

硬盘读写的问题.

原帖由 "CNL" 发表:
只能自己写个内核驱动加载,在驱动接口中直接对I/O端口和DMA操作
用户级控制不了


不是有个RAW设备模式能行吗?硬盘驱动器(硬件)上第一层抽象是IDE或SCSI设备驱动,第二层抽象是文件系统。楼主就是想绕过文件系统,直接调用设备驱动的服务,这个应该在user mode也可以吧?记得以前谁讲过的 :wink:

论坛徽章:
0
5 [报告]
发表于 2005-01-25 11:24 |只看该作者

硬盘读写的问题.

man raw

原来有手册的,呵呵,原先不知道

论坛徽章:
0
6 [报告]
发表于 2005-01-25 12:00 |只看该作者

硬盘读写的问题.

对,直接使用裸设备,但是在mount后不知道行不行,没试过。

论坛徽章:
0
7 [报告]
发表于 2005-01-25 12:12 |只看该作者

硬盘读写的问题.

看什么叫“直接”读写。
通过文件系统读写,不可能fread读到inode所在的BLOCK的原始数据(readdir是经过整理的)。如果直接读,就可以读到分区任何BLOCK内容。

最简单的,fopen("/dev/hdaN", "r"; fread() 可以。
用RAW block device bind可以
自己写个module调用bio.c中函数也可以(麻烦)

论坛徽章:
0
8 [报告]
发表于 2005-01-26 09:45 |只看该作者

硬盘读写的问题.

直接读写的意思就是不涉及文件系统,直接对磁盘的扇区进行读写操作.
LINUX有个taskfile好象可以能实现,但没有思路

论坛徽章:
0
9 [报告]
发表于 2005-01-26 09:57 |只看该作者

硬盘读写的问题.

我写过一个,分析fat32的文件系统,直接打开块设备,然后移动到指定的位置进行读写

论坛徽章:
0
10 [报告]
发表于 2005-01-26 10:21 |只看该作者

硬盘读写的问题.

[quote]原帖由 "ruanunix"]我写过一个,分析fat32的文件系统,直接打开块设备,然后移动到指定的位置进行读写[/quote 发表:


能不能贴一下源代码?偶们学习一下,谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP