Вы должны написать некоторый код для передачи данных из сокета в главный pty и наоборот. Обычно это работа родительского процесса. Обратите внимание, что передача данных должна быть двунаправленной. Есть много опций: цикл select (), управляемый для отслеживания как masterfd, так и socketfd
(просто подсказка, очень плохой код, не для производства !!! Отсутствует проверка ошибок и eof !!!)
for (;;) {
FD_ZERO(&set);
FD_SET(masterfd,&set);
FD_SET(socketfd,&set);
select(...,&set,...);
if (FD_ISSET(masterfd,&set)) {
read(masterfd,&c,1);
write(socketfd,&c,1);
}
if (FD_ISSET(sockerfd,&set)) {
read(sochetfd,&c,1);
write(masterfd,&c,1);
}
или пара потоков, один для socketfd-> masterfd и один для передач masterfd-> sockefd.
(как подсказка, очень плохой код, не для производства !!!)
/*thread 1 */
while (read(masterfd,&c,1) > 0)
write(socketfd,&c,1);
/*thread 2 */
while (read(socketfd,&c,1) > 0)
write(masterfdfd,&c,1);
В любом случае вы должны добавить некоторый код в родительскую часть ветви.
Привет
--- EDIT ---
Конечно, вы не должны перенаправлять fd 0,1 и 2 в socketfd в дочернем процессе.