作者sorryChen (陈扬和)
看板Programming
标题Re: 用C++如何很快知道一个档案有几行
时间Mon Feb 23 09:41:05 2009
真是感谢版友的指导..
其实不太懂I/O的机制..如果很低阶I/O 会每读一个字母就读一次吗
还是会自动Buffer, 因为我之前的I/O太慢, 还自己写了一个buffer的class
做batch read write, 但copy 到 buffer在一个个看'\n'会比 fgetc 然後检查慢吗
另外 有些OS有提供AP来判断档案大小, 比如说我们 ls就时可看到
那个不应该是去数出来而是os 记得的大小吧 但是换行就没记 只有档案大小有记
应该是这样吧
※ 引述《sorryChen (陈扬和)》之铭言:
: 一定要读过每个字元然後看有几个\n吗, 因为档很大时还满慢的
: call system call wc 应该就更慢了
: 要怎麽知道档案有多大我也不确定 这个file system 应该有纪录
: 不用一个个字元数.. 但有os independent的函数可回传档案大小吗
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 128.125.87.33
1F:推 sunneo:取得档案位址h,移动到档尾t,计算得到t-d 61.227.229.42 02/23 11:01
2F:→ sunneo:这是取得档案大小一般的做法 61.227.229.42 02/23 11:01
3F:→ sunneo:是在档案结构没有损毁的情况 算是os记的吧 61.227.229.42 02/23 11:02
4F:推 tinlans:低阶 I/O 通常要自己指定 buffer 大小。 118.160.104.77 02/23 18:47
5F:→ tinlans:一次只读一个字元通常会很慢。 118.160.104.77 02/23 18:48