免费注册 查看新帖 |

Chinaunix

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

请问:怎么从某一确定的行开始读文件? [复制链接]

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
51 [报告]
发表于 2007-04-07 16:23 |只看该作者
原帖由 assiss 于 2007-4-7 16:21 发表

你也太狠了些吧。一下子全读进来?
那还不如用mmap呢。

一下子都读进来也不算很狠吧?一般的文本文件如配置文件之类的都没多大的,日志除外。
不过“那还不如用mmap”倒是真的。

论坛徽章:
0
52 [报告]
发表于 2007-04-07 16:24 |只看该作者
原帖由 assiss 于 2007-4-7 16:21 发表

你也太狠了些吧。一下子全读进来?
那还不如用mmap呢。

这只是个例子,如果文件有一定格式的话可以分段读的

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
53 [报告]
发表于 2007-04-07 16:25 |只看该作者
原帖由 C_C 于 2007-4-7 16:24 发表

这只是个例子,如果文件有一定格式的话可以分段读的

问题是你用 read 能保证全读进来吗?
我记得 read 是不保证的哦。

论坛徽章:
0
54 [报告]
发表于 2007-04-07 16:25 |只看该作者
原帖由 flw 于 2007-4-7 16:20 发表

read 不行,得 fread。

为什么?

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
55 [报告]
发表于 2007-04-07 16:27 |只看该作者
原帖由 C_C 于 2007-4-7 16:25 发表

为什么?

fread 是库缓冲的,如果读不到,那肯定是没有了。
read 是系统调用,有时候会没读完就返回,比如收到信号。

评分

参与人数 1可用积分 +1 收起 理由
langue + 1

查看全部评分

论坛徽章:
0
56 [报告]
发表于 2007-04-07 16:30 |只看该作者
原帖由 flw 于 2007-4-7 16:27 发表

fread 是库缓冲的,如果读不到,那肯定是没有了。
read 是系统调用,有时候会没读完就返回,比如收到信号。


一直没注意这个问题,谢谢提醒

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
57 [报告]
发表于 2007-04-07 16:33 |只看该作者
原帖由 C_C 于 2007-4-7 16:30 发表

一直没注意这个问题,谢谢提醒

搞网络编程的都知道,read/write 一般都要配合循环使用才保险的。普通的文件设备要比网络稳定得多,但是如果要符合 read 的语义,那么还是 while 一下比较好,因为 read 的 man 手册里没有提到一定会读取指定数量的字节。

评分

参与人数 1可用积分 +1 收起 理由
langue + 1

查看全部评分

论坛徽章:
0
58 [报告]
发表于 2007-04-07 16:38 |只看该作者
原帖由 flw 于 2007-4-7 16:33 发表

搞网络编程的都知道,read/write 一般都要配合循环使用才保险的。普通的文件设备要比网络稳定得多,但是如果要符合 read 的语义,那么还是 while 一下比较好,因为 read 的 man 手册里没有提到一定会读取指定数 ...


在网络上我一直都用while,读文件我还真没想到

论坛徽章:
0
59 [报告]
发表于 2007-04-07 16:45 |只看该作者
to > flw
《unix 高级环境编程》第4。2的说明在读常规文件时不会出现这个问题

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
60 [报告]
发表于 2007-04-07 17:23 |只看该作者
原帖由 C_C 于 2007-4-7 16:45 发表
to > flw
《unix 高级环境编程》第4。2的说明在读常规文件时不会出现这个问题

你看的是哪一版?
我这里有一份电子的,我看了一下,第 4.2 节讲的是 stat fstat 和 lstat 啊。没有说 read。
考虑到你有可能是 4.20 节的手误,我还特意看了一下,讲的是 mkdir。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP