检测到mmap-ed文件已被截断

时间:2013-10-23 15:27:17

标签: c++ mmap

我在C ++库中有一个文件mmap(2),我有一个函数,通过访问mmap ped内存来读取该文件。

我想优雅地处理这种情况,而其他人在打开文件时截断文件。

问题是文件被截断时对mmap内存的访问量会增加SIGBUS。 我可以安装一个信号处理程序,但我能看到的唯一方法就是使用setjmp / longjmp,这会破坏所有C ++之类的事情,比如异常和自动变量。

有吗

  • 一种(最好是便宜的)检测基础文件在读取内存前被截断的方法
  • 一种 C ++从SIGBUS信号处理程序中逃脱的方法,它不会搞砸程序的其余部分吗?

0 个答案:

没有答案