Linux中userfaultfd()系统调用的旧选择?

问题描述 投票:0回答:1

我想在C程序中使用userfaultfd()syscall,但它不存在于较旧的Linux内核中。 userfaultfd()系统调用的替代方案是什么,它也存在于旧版Linux内核中?谢谢!

编辑:我想要的是一种获取usefaultfd()的一些主要优点的方法,主要处理页面错误。

c linux version compatibility system-calls
1个回答
0
投票

mprotect(2)页面与PROT_NONE,所以所有访问错误并实现一个SIGSEGV处理程序,您处理故障。 libsigsegv抽象出一些复杂性:

GNU libsigsegv是一个用于在用户模式下处理页面错误的库。当程序试图访问当前不可用的内存区域时,会发生页面错误。捕获和处理页面错误是一种有用的实现方法:

  • 可分页的虚拟内存,
  • 内存映射访问持久数据库,
  • 世代垃圾收集器,
  • 堆栈溢出处理程序,
  • 分布式共享内存,
  • ...
© www.soinside.com 2019 - 2024. All rights reserved.