2

大家,冬天来了,请注意保暖,保持健康。在思考工作的过程中,我对 fd dup2 的功能提出了一些问题。我创建了一个套接字服务器和一个客户端。服务器发送,客户端接收数据。但是现在我想将服务器套接字 fd 复制到文件 df 中,以便让客户端直接从位于服务器中的文件中读取数据。我写喜欢

而(socketdf = 接受(...))
{
 dup2(filefd, socketfd);
}

但是,它不起作用,这可能吗?你能给我什么建议吗?谢谢

4

1 回答 1

4

dup2()不是那样工作的——你最终在这里做的是关闭socketfd并用filefd.

没有办法像您在这里尝试做的那样直接将套接字插入文件 - 您需要将数据从文件“泵送”到应用程序中的套接字。不过,sendfile()系统调用将大大简化事情。

于 2011-11-11T05:27:56.240 回答