免费注册 查看新帖 |

Chinaunix

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

[求助]文件读取的疑惑 [复制链接]

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
21 [报告]
发表于 2007-04-16 18:12 |只看该作者
原帖由 rxpmcb 于 2007-4-16 17:24 发表
这样好象不太安全,读取的过程中会被signal打断?

那么你可以看看在标准I/O库里面是怎么处理这些情况的。

论坛徽章:
0
22 [报告]
发表于 2007-04-17 09:16 |只看该作者
谢谢大家的意见,我去试试

论坛徽章:
0
23 [报告]
发表于 2007-04-17 09:31 |只看该作者
原帖由 rxpmcb 于 2007-4-17 09:16 发表
谢谢大家的意见,我去试试


请看《把大量数据(如10M)一次用write系统调用写入一个文件 会出问题不会???   》

论坛徽章:
0
24 [报告]
发表于 2007-04-17 10:23 |只看该作者
使用O_LARGEFILE 来open结果编译不通过:error: `O_LARGEFILE' undeclared
我用了#define __USE_LARGEFILE64
汗..

论坛徽章:
0
25 [报告]
发表于 2007-04-17 10:36 |只看该作者
闭关.......................................read book

论坛徽章:
208
巨蟹座
日期:2013-09-02 09:16:36卯兔
日期:2013-09-02 20:53:59酉鸡
日期:2013-09-05 21:21:45戌狗
日期:2013-10-15 20:51:17寅虎
日期:2013-10-18 21:13:16白羊座
日期:2013-10-23 21:15:19午马
日期:2013-10-25 21:22:48技术图书徽章
日期:2013-11-01 09:11:32双鱼座
日期:2013-11-01 20:29:44丑牛
日期:2013-11-01 20:40:00卯兔
日期:2013-11-11 09:21:32酉鸡
日期:2013-12-04 19:56:39
26 [报告]
发表于 2007-04-17 16:30 |只看该作者
#define FILE_OFFSET_BITS 64
在开始第一行,包括头文件前

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
27 [报告]
发表于 2007-04-17 16:56 |只看该作者
原帖由 流氓无产者 于 2007-4-17 16:30 发表
#define FILE_OFFSET_BITS 64
在开始第一行,包括头文件前


定义宏_FILE_OFFSET_BITS 为 64 比直接定义宏 __USE_FILE_OFFSET64 要好些,似乎也更通用。

论坛徽章:
0
28 [报告]
发表于 2007-04-17 17:08 |只看该作者
原帖由 MMMIX 于 2007-4-17 16:56 发表


定义宏_FILE_OFFSET_BITS 为 64 比直接定义宏 __USE_FILE_OFFSET64 要好些,似乎也更通用。

我定义了宏__USE_LARGEFILE64
用cc -D_FILE_OFFSET_BITS=64 编译
使用函数read,write ,lseek
可以正常读取了

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
29 [报告]
发表于 2007-04-17 17:27 |只看该作者
原帖由 rxpmcb 于 2007-4-17 17:08 发表

我定义了宏__USE_LARGEFILE64
用cc -D_FILE_OFFSET_BITS=64 编译
使用函数read,write ,lseek
可以正常读取了


宏 __USE_LARGEFILE64 和 _FILE_OFFSET_BITS 没有必要同时用。另外可以参考一下 /usr/include/features.h 中提到的其他一些宏。

论坛徽章:
0
30 [报告]
发表于 2007-04-18 12:30 |只看该作者
通过在使用off_t数据类型的文件前面(最好视最前面,防止不能进行预编译)加入#define _FILE_OFFSET_BITS 64,就可以让off_t是64位的数据类型了,当然超过2G的文件是可以寻址的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP