1

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

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

问题是当文件被截断时,对mmaped 内存的访问会增加。SIGBUS我可以安装一个信号处理程序,但我想摆脱它的唯一方法是使用setjmp/ longjmp,这会破坏所有 C++ 的东西,比如异常和自动变量。

在那儿

  • 在读取内存之前检测底层文件已被截断的(最好是便宜的)方法?
  • 一种从不会破坏程序其余部分的信号处理程序中逃脱的 C++ 方法?SIGBUS
4

0 回答 0