Rob*_*ger 3 macos cocoa cocoa-touch objective-c core-foundation
我仅限于在特定应用程序中使用 CoreFoundation,并且无权访问NSData
.
我需要使用内存映射从文件访问数据,因为文件可能非常大。使用NSData
,我可以使用+dataWithContentsOfURL:options:error:
方法来实现这一点,传入NSDataReadingMappedAlways
选项。
有可能做到这一点CFData
吗?我能找到的唯一一个CFData
直接从文件创建对象的CFURLCreateDataAndPropertiesFromResource()
函数是函数,它没有任何设置内存映射标志的选项。
是否有CFData
使用内存映射读取从文件加载对象的低级方法?我必须下降到mmap
什么地方吗?
您可以CFData()
从字节缓冲区和计数创建一个。鉴于此,您应该能够访问mmap()
有问题的文件,然后将映射的字节缓冲区传递给CFDataCreateWithBytesNoCopy()
. 唯一真正的复杂之处是您需要使用CFAllocatorRef
知道如何munmap()
作为bytesDeallocator
.
归档时间: |
|
查看次数: |
1888 次 |
最近记录: |