如何获得或者创建出现有memory的fd?

拿到一块buffer,知道地址,size信息
现在想要获得它的fd,有没有什么办法

试过下面的方法

FILE * fp = fmemopen(addr, size, "r");
int fd = fileno(fp);
// fp 是可以获得, 但是 fileno 总是返回 -1, errno 是 9 ,EBADF

有没人知道怎么搞

阅读 3.2k
1 个回答

fmemopen 只是把内存包装到 FILE 流中,并不代表着它底下一定有一个 fd。
你想要 fd 的话,用 mmap 呗。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题