请教怎样读写4G文件 最好是可以跨平台的方法

aby7984 2009-08-26 04:15:59

1. c 库函数 fseek 不行
2. c++ stl fstream.seekg 好像也不行

-fxxxi64 系列 貌似可以 但好像不是 ansi 的东西

请教 有没有什么解决的方法? 谢谢
...全文
189 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
aby7984 2009-09-09
  • 打赏
  • 举报
回复
看来也只能这样了 谢谢大家
bfzhao 2009-08-29
  • 打赏
  • 举报
回复
C++目前没有标准的64位整数支持,所以没有可移植的一致的处理办法,可以使用平台扩展库或者直接调用合适的系统调用。
herman~~ 2009-08-29
  • 打赏
  • 举报
回复
mark
aby7984 2009-08-29
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 fallening 的回复:]
使用boost/filesystem
http://www.boost.org/doc/libs/1_39_0/libs/filesystem/doc/index.htm
不过文件的大小是文件系统限制的,估计fat之类的不成
[/Quote]

boost::filesystem 有文件读写方面的么?
ysysbaobei 2009-08-28
  • 打赏
  • 举报
回复
顶下
feilong_1216 2009-08-28
  • 打赏
  • 举报
回复
对把它分成N小块,分N次存入文件中。。。。。。
飞天御剑流 2009-08-28
  • 打赏
  • 举报
回复
[Quote=引用楼主 aby7984 的回复:]
1. c 库函数 fseek 不行
2. c++ stl  fstream.seekg 好像也不行

-fxxxi64 系列 貌似可以 但好像不是 ansi 的东西

请教 有没有什么解决的方法? 谢谢
[/Quote]

c/c++标准库文件内部指针的指示范围使用long数据类型的做法源于UNIX的文件大小,但其实fseek和seekg都是可以处理超过long大小的文件的,你不要使用从文件头开始的绝对偏移量,应该用相对偏移,可以使用SEEK_CUR、SEEK_END、io_base::cur、io_base::end的正负方向的偏移,例如in.seekg( long, ios_base::cur),再in.seekg( long, ios_base::cur ),就可以一直往下走啊。
zqlclj 2009-08-28
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 lzh9955 的回复:]
把它分成小块不行吗?
[/Quote]
野男孩 2009-08-28
  • 打赏
  • 举报
回复
用ACE吧
lzh9955 2009-08-27
  • 打赏
  • 举报
回复
把它分成小块不行吗?
fallening 2009-08-27
  • 打赏
  • 举报
回复
使用boost/filesystem
http://www.boost.org/doc/libs/1_39_0/libs/filesystem/doc/index.htm
不过文件的大小是文件系统限制的,估计fat之类的不成
Zijian_Zhang 2009-08-26
  • 打赏
  • 举报
回复
fgetpos,fsetpos,C标准库的函数。
xiao_ke 2009-08-26
  • 打赏
  • 举报
回复
貌似标准库米有这方面的东西! 只有调用系统API

64,636

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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