我有一些大小为6.7GB的文件,以及更多(这些是视频文件)。 我想把大块的文件数据发送到我的服务器,所以我现在做的是:
contents = [fileManager contentsAtPath:path];
if (mFileOffset<[contents length]) {
NSRange range = NSMakeRange(mFileOffset, (allowedSize>[contents length]?[contents length]:allowedSize);
contents =[contents subdataWithRange:range];
然而,这会产生内存问题:
malloc: *** mmap(size=616927232) failed (error code=12)
*** error: can't allocate region
*** set a breakpoint in malloc_error_break to debug
APP(2700,0x4136000) malloc: *** mmap(size=616927232) failed (error code=12)
*** error: can't allocate region
fseek
中有c++
这样的方法,以便我只读取指定范围内的文件的字节数吗?
答案 0 :(得分:3)
NSFileHandle中有一个方法可以同步读取指定字节数的数据。
-[NSFileHandle readDataOfLength:]
寻求:
– offsetInFile
– seekToEndOfFile
– seekToFileOffset:
答案 1 :(得分:2)
fseek
不是C++
,而是C
函数。 Obj-C
中提供了相同的功能。
请注意,Obj-C
只是C
上的一个图层,每个有效C
代码也是有效的Obj-C
代码。
文件功能也被抽象为Obj-C
类NSFileHandle
。但是,此类与fopen
,fseek
,fclose
等具有完全相同的功能。