Vla*_*nko 5 memory-mapped-files nsdata ios
我有一个文件,我用NSData内存映射.然后,我通过NSFileManager删除此文件,没有任何错误,并继续检查该文件确实不存在(就NSFileManager和ls而言).但是,我仍然可以从我之前从NSData获得的字节指针中读取数据!
在模拟器中,我有时会遇到看似无关的崩溃.在设备上,一切似乎都很好.我很想知道发生了什么,我应该期待什么(我过去期望在尝试删除文件时遇到错误,或者在我删除文件后尝试访问时出现崩溃).
谢谢!
如果你没有取消映射内存,那么使用文件指针创建的mmap会阻止文件被删除(即使你看不到它).在删除引用的文件之前,应始终取消映射内存.
[这涉及一个旧的UNIX技巧 - 打开一个文件,一旦你有一个文件描述符然后取消链接文件 - 你有一个文件,你可以做的事情但没有人可以看到,如果你崩溃文件完全消失!]
| 归档时间: |
|
| 查看次数: |
848 次 |
| 最近记录: |