有没有方法在fat分区中快速创建大一些的文件?

liangchencf 2010-02-08 10:19:44
有没有方法在fat分区中快速创建大一些的文件的呢?比如2G大小的
环境是在arm上。fat分区是我移动硬盘。
seek和dd命令的方法都试了,很慢...300M的文件要用不到10分钟。谢了
...全文
107 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
liangchencf 2010-11-05
  • 打赏
  • 举报
回复
如果是在pc上当然很快,如果是在一个usb1.1的移动硬盘,且文件系统是fat格式时就没有这么快了
[Quote=引用 7 楼 dudangyimian 的回复:]
可以创建一个大的空文件,比如一个1G的空文件:
dd if=/dev/zero of=/opt/test bs=G count=0 seek=1

微秒级的时间啊
[/Quote]
whg01 2010-02-08
  • 打赏
  • 举报
回复
测试一下删除2G文件需要用的时间,如果是毫秒级,那么无需对fat表进行优化。
whg01 2010-02-08
  • 打赏
  • 举报
回复
不初始化数据,是指不初始化文件内的数据。fat表的数据是要处理的。
fat表放在内存中,速度会快很多。
liangchencf 2010-02-08
  • 打赏
  • 举报
回复
不需要初始化数据。是不是只能自己写fat表来实现了?
因为我从nfs上考文件到fat分区中也很慢,速度也在分钟级别的。估计是arm本身速度不快,在加上fat文件系统也不是linux的强项吧
Proteas 2010-02-08
  • 打赏
  • 举报
回复
能不能寻找一个比较快速的 IO 库?
DontKissBossAss 2010-02-08
  • 打赏
  • 举报
回复
[Quote=引用楼主 liangchencf 的回复:]
有没有方法在fat分区中快速创建大一些的文件的呢?比如2G大小的
环境是在arm上。fat分区是我移动硬盘。
seek和dd命令的方法都试了,很慢...300M的文件要用不到10分钟。谢了
[/Quote]

300M 10分钟,的确够慢。writefile 都比那块N多。
whg01 2010-02-08
  • 打赏
  • 举报
回复
如果只是让文件大小变成2G,而不初始化文件数据的话,应该很快。
1.看看你的fat表是不是在内存中
2.看看是不是对文件的数据进行了初始化。
如果这两点解决不了的话,没办法变快。尤其是第二点。
toborac 2010-02-08
  • 打赏
  • 举报
回复
不会这么慢啊,楼主检查一下有什么发现更新一下
方法1:feek(fp,0x80000000L,SEEK_SET);
fwrite(..)
方法2:见7楼
方法3:你可以直接写FAT区,没必要,不见得会快
dudangyimian 2010-02-08
  • 打赏
  • 举报
回复
可以创建一个大的空文件,比如一个1G的空文件:
dd if=/dev/zero of=/opt/test bs=G count=0 seek=1

微秒级的时间啊

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧