socket()创建的描述符是否可以映射到内存缓冲区?

时间:2013-06-17 15:17:32

标签: sockets mapping file-descriptor fdopen

有没有办法将socket()创建的描述符映射到内存缓冲区?

我之所以要这样做,是因为我想让现有的应用程序从我创建的内存缓冲区中读取而不是相关的TCP缓冲区。我不应该修改应用程序,所以我想将应用程序返回的fd映射到我创建的缓冲区。

我发现了一个类似的问题: Can descriptors for sockets be converted to File Pointers?

但是我不知道fdopen()是否可以用于我的目的,因为fdopen()只需要两个参数(fd和mode)而且我不知道如何将fd重新关联到我用malloc()创建的内存。

1 个答案:

答案 0 :(得分:0)

  

有没有办法将socket()创建的描述符映射到内存缓冲区?

没有。这没有意义。由于虚拟内存系统,映射文件很有意义。映射的套接字没有。

  

我想将应用程序返回的fd映射到我创建的缓冲区。

您必须编写代码才能从套接字读入缓冲区。