♣
大于4G的文件,如何进行操作?读、写、seek等!
如题。
· 网友精彩回答:
读写和正常的没有什么区别,一次不要读写超过4g的缓冲区就可以了.
mfc的cfile已经可以支持64位的seek,position,下面这些操作都是ulonglong的.
getlength
seek
seektobegin
seektoend
setlength
同时支持windows/linux你就不要想了,两个平台api完全不一样的。
windows端的话看看msdn就知道了,createfile()、setfilepointer()、readfile()、
writefile()、closehandle()。关键是setfilepointer()的第三个参数,plong lpdistancetomovehigh,只能在nt 4以上核心才有用,9x是玩不了的,详细描述看msdn。读写还是readfile()、writefile(),没有区别。
linux端open()、lseek64()、read()、write()、close()。lseek64()只有kernel 2.4.18以后才支持,以前只有lseek()。具体描述你man一下好了。
忘了提醒你了,不光需要kernel 2.4.18,glibc的版本也要匹配。
对大文件操作也可以使用: 内存映射creatfilemapping
楼上的:
createfilemapping还要自己按页粒度map/unmapviewoffile,不自找麻烦吗?
顺便说一下,楼主,好结帖了!已经给你最底层最标准的方法了,还想怎么样啊?
另外,不小心看到了楼主的另一个帖子,实在觉得ooxx得很……windows对文件的基本操作也就这六个,还没听说过哪个os可以提供一个“那么基本的操作”将文件中间删掉一段的……
麻烦不麻烦,自己看一下使用后的效果就知道了。
使用内存映射文件,对大文件的读取来说,性能比一般的文件操作api函数要好一百倍。
楼主~~~i服了u了~~~去掉inode的话去掉的数据量总是cluster的整倍数的!你要删掉一个字节的话,怎么玩啊?
基本的操作就那些
不要怀疑系统的能力
- 更多问题:
- · 我要参加游戏开发项目组吗?
- · [hibernate]请教一下这样的查询如何写?
- · CVS代码库,各位大侠帮助
- · 请教一个混合编程的问题
- · 怎样载入位图文件到DirectDraw中
- · 怎么在CONSOLE程序中使用定时器?
- · 很不错的OA系统源程序!使用PHPLIB模板开发.
- · 怎样让VB编出来的程序窗口更漂亮?(给40分)
- · 关于jb的小问题
- · 请问,用C#能做类似于QQ的即时通迅软件吗?
- · 请教如何取字符串中的数字?
- · 关于安装ms2003server uddi服务的问题
- · 使用MSXML解析XML的一个毛病
- · ExcelApplication 问题
- · Windows98还有没有版权问题?
- · 如何让LABEL控件不被TABSHEET控件覆盖?
- · samba技术文档
- · 供应链关系 | 供应链
- · 中间件开发
- · 分布式处理与技术
- · 通信技术专题 | 通信
- · ic专题
- · apache教程
- · apache windows
- · ie缓存
- · 漏洞扫描
- · 漏洞扫描器
- · svchost.exe 魔波
- · windows进程
- · apache支持asp
- · apache的配置
- · fso 方法
- · 在R5的管理客户端,如何用server.id来签名设计元素
- · 全球知名3D设计软件行业盛会首度移师中国
- · 形象设计
- · 三维自然景观设计大师Vue 5 Esprit
- · 程序设计
- · Photoshop7.0之系统优化策略
- · 速成高手 Photoshop中文版数码全攻略
- · photoshop字体
- · 火狐firefox

