12.3. 使用 mmap ()系统调用将文件或设备映射到内存中
对于实时系统中的大型内存分配,内存分配(malloc)方法使用 mmap () 系统调用来查找内存空间。您可以通过在 flags 参数中设置 MAP_LOCKED 来分配和锁定内存区域。因为 mmap () 以页为基础分配内存,因此它会避免在同一页面中出现两个锁定,这样可防止双锁或单解锁问题。
先决条件
- 您在系统上具有 root 权限。
流程
映射特定的 process-address 空间:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
-
当
mmap ()函数成功完成时,它会将指针返回到映射区域。出错时,它会返回MAP_FAILED值,并设置errno来指示错误。 -
当
munmap ()函数成功完成时,它返回0。出错时,它会返回-1,并设置errno来指示错误。