LINUX.ORG.RU

IO, 3 stream-а


0

0

Вообщем такая задача:

Есть три дескриптора: sfd = socket(...), wfd = fileno(stdout), rfd = fileno(stdin). Нужно все, что читается с rfd писать в sfd, а все, что читается с sfd, писать в wfd.

rfd -> sfd -> wfd

Можно ли как-то связать эти потоки наподобие пайпов? С помощью poll уж очень громоздко.

anonymous

Забыл сказать: когда соединение по сокету sfd разорвется, нужно все это прекратить и продолжить выполнение. На время работы соединения можно блокироваться - делать в это время нечего.

Вообщем задача наподобие netcat.

anonymous
()
Ответ на: комментарий от grob

> man pipe > man dup2

не поможет ни тот ни другой. руками.

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от grob

Вот так у меня получается привязывать к сокету stdin и stdout shellа: dup2(sfd, 0); close(sfd); dup2(0, 1); dup2(0, 2); execl("/bin/sh", "sh", (char *)0);

А как можно привязать свой stdin и stdout к сокету? Можно пример?

anonymous
()
Ответ на: комментарий от anonymous

> А как можно привязать свой stdin и stdout к сокету? Можно пример?

через inetd

Eshkin_kot ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.