2013-02-10 64 views
0

我想知道是否有可能连接两个管道或套接字。让我们假设有两个管道/套接字。第一个具有两个文件描述符A和B,第二个具有两个文件描述符C和D.是否可以将B连接到C以便能够写入A并从D读取数据?其他则只需阅读表格B并在用户空间中写入C?是否可以连接两个管道/插座?

谢谢。

回答

1

如果您只是想从一个套接字读取数据并写入另一个套接字而不将数据复制到用户空间,请查看http://linux.die.net/man/2/sendfile。你需要一个相当新的Linux。

+0

其实,我使用FreeBSD,但它的实现。我会读到这个。谢谢。 – 2013-02-10 03:32:41

+1

是的,它允许将数据从一个文件描述符发送到另一个文件描述符,而不需要将数据复制到用户空间。但是,它不会永久连接两个管道/插座。因此,我想我会发送B文件描述符到另一个进程而不是通过C-D管道传递数据。非常感谢。 – 2013-02-10 15:25:02

+1

然后它是拼接http://linux.die.net/man/2/splice你想要的,而不是sendfile。但是我不知道它是否存在于FreeBSD上 – Scout 2013-05-23 15:59:43