关闭后读取内存映射文件

时间:2021-05-10 18:29:54

标签: ios linux unix operating-system mmap

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 
}

0 个答案:

没有答案