не может написать в pty - linux - PullRequest
0 голосов
/ 13 января 2010

Я владелец устройства pty, созданного так разрешения - crw-w ----

mknod pty1 c 1 1
cat > pty1

говорит мне, что операция не разрешена.

то, что я хочу сделать позже, - это открыть файл из программы, используя open и call write, чтобы отправить вывод на терминал, как если бы это был файл на диске.

почему кошка не работает. можем ли мы записать в pty или прочитать из pty , используя open и write.

мы можем сделать это из Java. Java пишет в файл, который на самом деле pty.

источник проблемы: заставляет программу сбрасывать стандартный вывод при перенаправлении

Обновление : вопрос неясен. мне нужно добавить больше информации?

вывод команды ls -la

crw--w---- 1 iamrohitbanga users 1, 1 2010-01-13 18:27 pty1
crw--w---- 1 iamrohitbanga users 1, 2 2010-01-13 18:29 pty2

также

когда я это сделаю cat / dev / pts / 0 в одном терминале и cat> / dev / pts / 0 в другом, я не вижу ввода одного получателя в другой.

1 Ответ

4 голосов
/ 13 января 2010

Это не так, как работают PTYs; Вы должны прочитать man 4 pty и man 4 pts. (Старые устройства в стиле BSD больше не должны использоваться.)

Чтобы открыть псевдо-терминальное ведомое устройство (PTS, /dev/pts/#, возвращаемое ptsname(3)), другая программа должна создать мастер псевдо-терминала (PTM, возвращаемый *). 1014 *) и включите PTS с помощью grantpt(3) и unlockpt(3).

Использование вспомогательных функций forkpty(3) и т. Д. намного проще, чем вызов самих функций низкого уровня.

И даже после этого он не работает как FIFO (что вы, похоже, ожидаете): все, что записано в PTS, выходит на PTM, а все, что читается из PTS, записывается из PTM.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...