如何解决在 macOS 中分配 32 位地址
在 linux x86_64 上,为了仅使用 32 位指针设置地址空间,我使用函数(在 Rust 中):
function getPricePromise() {
return new Promise((resolve,reject) => {
$.getJSON("https://api.coingecko.com/api/v3/simple/price?ids=bitcoin&vs_currencies=usd",function(data){
resolve(data["bitcoin"]["usd"]);
}).fail(function(_,textStatus,error ) {
reject(error);
});
}
}
async function btcPriceLogger() {
var btcPrice = 63000;
try {
btcPrice = await getPricePromise();
} catch (err) {
alert(err);
}
console.log(btcPrice);
}
btcPriceLogger()
或者将 32 位值作为第一个参数传递给 let big_heap = libc::mmap(std::ptr_null_mut() as *mut libc::c_void,MAX_HEAP_SIZE,libc::PROT_READ | libc::PROT_WRITE,libc::MAP_PRIVATE | libc::MAP_32BIT | libc::MAP_ANONYMOUS,-1,0);
并使用 mmap
。
macOS 上似乎没有 libc::MAP_FIXED
。我尝试将第一个参数设置为某个常量并使用 libc::MAP_32BIT
,有时它可以工作,有时它会因无法创建内存而崩溃。
有什么方法可以安全地保留一个地址空间,并且该地址空间位于 macOS 上的 32 位中?我考虑分配一个 64 位值,并使用该值的 32 位偏移量,但它产生了无法接受的运行时开销,必须到处传递基指针。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。