拿到一块buffer
,知道地址,size
信息
现在想要获得它的fd
,有没有什么办法
试过下面的方法
FILE * fp = fmemopen(addr, size, "r");
int fd = fileno(fp);
// fp 是可以获得, 但是 fileno 总是返回 -1, errno 是 9 ,EBADF
有没人知道怎么搞
拿到一块buffer
,知道地址,size
信息
现在想要获得它的fd
,有没有什么办法
试过下面的方法
FILE * fp = fmemopen(addr, size, "r");
int fd = fileno(fp);
// fp 是可以获得, 但是 fileno 总是返回 -1, errno 是 9 ,EBADF
有没人知道怎么搞
7 回答5.3k 阅读
3 回答2k 阅读✓ 已解决
4 回答4k 阅读
2 回答3.9k 阅读✓ 已解决
2 回答5.9k 阅读✓ 已解决
2 回答3.2k 阅读✓ 已解决
1 回答3.2k 阅读✓ 已解决
fmemopen 只是把内存包装到 FILE 流中,并不代表着它底下一定有一个 fd。
你想要 fd 的话,用 mmap 呗。