0

我有一些大小为 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

有没有办法让我只读取指定范围内的文件字节fseekc++

4

2 回答 2

3

NSFileHandle中有一个方法可以同步读取指定字节数的数据。

-[NSFileHandle readDataOfLength:]

寻求:

– offsetInFile
– seekToEndOfFile
– seekToFileOffset:
于 2013-04-01T13:59:21.117 回答
2

fseek不是C++,它是一个C函数。相同的功能在Obj-C.

请注意,这Obj-C只是一层C,每个有效C代码也是有效Obj-C代码。

文件函数也被抽象为一个Obj-CNSFileHandlefopen但是,此类具有与,fseek等完全相同的功能fclose

于 2013-04-01T14:07:31.093 回答