【发布时间】:2020-06-25 22:11:51
【问题描述】:
为了分配内存,我这样做:
uint64_t _addr = 0x00;
kern_return_t err = mach_vm_allocate(mach_task_self(), &_addr, size, VM_FLAGS_ANYWHERE);
if (err != KERN_SUCCESS) {
printf("failed to allocate %s\n", mach_error_string(err));
}
但是有人可以告诉我如何防止该内存被分页到交换区吗?在 Windows 中有 VirtualLock。
【问题讨论】:
-
你的目标是什么?您想确保进程在访问内存时不会出现页面错误吗?或者您是否试图通过防止将数据写入磁盘来保护数据?如果是后者,那么接线可能还不够。