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)
使用
munlockall ()
解除所有映射的页面:#include <sys/mman.h> int munlockall (void)
其他资源
-
capabilities(7)
man page -
mlock(2)
man page -
mlock(3)
man page -
move_pages(2)
man page -
posix_memalign(3)
man page -
posix_memalign(3p)
man page