2013-02-10 3 views
0

Мне интересно, можно ли подключить две трубы или розетку. Предположим, что у них две трубы/гнездовые пары. Первый имеет два файловых дескриптора A и B, второй - два дескриптора файла C и D. Можно ли подключить B к C, чтобы иметь возможность писать в A и читать данные из D? Другое, тогда просто чтение формы B и запись на C в пользовательском пространстве?Возможно ли подключить две трубы/розетки?

Спасибо.

ответ

1

Если вы просто хотите читать из одного сокета и писать другому, не копируя данные в пользовательское пространство, посмотрите на http://linux.die.net/man/2/sendfile. Вам нужен довольно недавний Linux.

+0

На самом деле, я использую FreeBSD, но это реализовано. Я прочитаю об этом. Благодарю. –

+1

Да, он позволяет отправлять данные из одного дескриптора файла в другой, не копируя его в пространство пользователя. Тем не менее, он не соединяет две трубы/розетки постоянно. Поэтому я думаю, что я отправлю дескриптор файла B в другой процесс вместо передачи данных через канал C-D. Большое спасибо. –

+1

Тогда это сплайсинг http://linux.die.net/man/2/splice, который вы хотите, а не sendfile. Однако я не знаю, существует ли она на FreeBSD – Scout

Смежные вопросы