mmap
手册页表明关闭文件不会导致页面取消映射。但是,我想知道以下序列是否有效,即在读取发生时页面可能还没有错误地进入内存。换句话说,在 close
之后文件是否仍然打开? Android 和 iOS 上的行为也是预期的吗?
void func()
{
auto fd = open("test.txt", O_RDONLY);
void *ptr = mmap(nullptr, 16384, PROT_READ, MAP_PRIVATE, fd, 0);
close(fd);
uint8_t *p = (uint8_t *)ptr;
// Read from *p
}