siteddy
驱动牛犊
驱动牛犊
  • 注册日期2001-08-07
  • 最后登录2005-02-01
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
20楼#
发布于:2003-07-07 16:37
兄弟:目前绝大部分的harddisk的section(扇区)大小是512字节。驱动器的机械特性使得每次向磁盘读或者写的最小单元是512字节,你明白吗?也许你有疑问,因为你肯定看到过小于512字节的文件啊,为什么呢?这就是因为wolfwoo22所说的FILE_FLAG_NO_BUFFERING开关了。当我们打开文件而没有特别指定这个开关的时候,操作系统自动为这个文件建立一个8k左右的内部缓冲区(你可以编程改变),如果你对文件的操作mod(512)!=0,多出来的字节会在你关闭文件的时候系统自动把它补齐一次写入磁盘(flush).文件系统会通报准确的文件大小,同时告诉你文件占用空间的大小(这个肯定是512对齐的)。你用鼠标右键随便看一个文件的属性你就会看到这个事实了。而当你打开文件特别指定FILE_FLAG_NO_BUFFERING开关的时候,系统就没有建立缓冲区了,所以如果你的操作的文件偏移量不是512对齐,则文件系统无法定位磁盘位置,而如果你的操作的数据量不是512对齐,同样是因为无法定位磁盘位置而失败。
teddy
wolfwoo22
禁止发言
禁止发言
  • 注册日期2003-03-11
  • 最后登录2016-04-11
  • 粉丝0
  • 关注0
  • 积分930分
  • 威望8970点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
21楼#
发布于:2003-07-07 16:44
用户被禁言,该主题自动屏蔽!
li_jie
驱动牛犊
驱动牛犊
  • 注册日期2003-05-21
  • 最后登录2005-05-28
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
22楼#
发布于:2003-07-09 13:30
楼上的大哥:
我现在已经把我要写入的数据以512字节长度写入,进行FAT(我定义的<1G的容量)格式化时没问题,加密解密都没问题,可是格式化为FAT32(我定义的>2G的容量)时提示不能完全格式化,但我到win2k自带的dos下进行chkdsk检测时,提示了格式化的信息,也就是已经格式化了的,在dos下对该盘进行操作时,并不提示该盘未格式化,而提示的是“更改此用户密码时需要交叉加密密码”。还有如果我到win2k自带的dos下进行进行FAT32格式化也能成功,但格式化成功后想对该盘进行操作时,dos会提示“更改此用户密码时需要交叉加密密码”,不知到是什么原因?能帮我回答吗?
上一页 下一页
游客

返回顶部