免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123
最近访问板块 发新帖
楼主: gooderfeng
打印 上一主题 下一主题

[函数] 想使用read来实现从文件中读取一行数据的函数 [复制链接]

论坛徽章:
0
21 [报告]
发表于 2007-06-02 23:05 |只看该作者
原帖由 思一克 于 2007-6-2 21:07 发表
一个一个BYTE读判断回车慢. 不行.

全读进来也不行.

最快的方法:
开一个buffer,大小可以是256到1024都可以. 一次read进来buffer大小,
然后调用strchr(buffer, '\n')找.
关键是要用strchr, strcpy, memcp ...

如果行的长度是3-30M,那么这个方法还是很糟糕。肯定没有fgets快。

论坛徽章:
0
22 [报告]
发表于 2007-06-02 23:27 |只看该作者
一般情况下,文本文件行长度有最大限度.
你到一个LINUX系统找到所有的文本文件看. 都是如此.

如果一个例外,行长度是许多M字节,那么读入到一个1024的buffer, strchr方式比每个BYTE读比较快的更多.


原帖由 flw2 于 2007-6-2 23:05 发表

如果行的长度是3-30M,那么这个方法还是很糟糕。肯定没有fgets快。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP