12.3. 使用 mlockall ()系统调用锁定所有映射的页面
要使用 mlockall ()和 锁定和解锁实时内存,请将 munlockall () 标志 参数设置为 0 或恒定s: MCL_CURRENT 或 MCL_FUTURE。使用 MCL_FUTURE 时,将来的系统调用(如 mmap2 ()、sbrk2 () 或 malloc3 () )可能会失败,因为它导致锁定的字节数超过允许的上限。
先决条件
- 有 root 权限。
流程
使用
mlockall ()和munlockall ()实时系统调用:使用
mlockall ()锁定所有映射的页面:#include <sys/mman.h> int mlockall (int flags)
#include <sys/mman.h> int mlockall (int flags)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
munlockall ()解除所有映射的页面:#include <sys/mman.h> int munlockall (void)
#include <sys/mman.h> int munlockall (void)Copy to Clipboard Copied! Toggle word wrap Toggle overflow