LINUX.ORG.RU

Как организовать два перекрестно замкнутых символьных устройства?


0

2

Привет, ЛОР. Подскажи, как реализовать такую идею: Программа_1 открывает /dev/foo1 и пишет в него данные, а Программа_2 открывает /dev/foo2 и читает от туда данные. Причём в любой момент времяни любая из этих прог может и писать туда начать (ну или стать читать). т.е. что-то замыкания /dev/foo1 и /dev/foo2. Пишем в /dev/foo1, можем прочесть из /dev/foo2, пичем в /dev/foo2 можем прочесть в /dev/foo1. Очень похоже на named pipe, но named pipe устраивает замыкание на самого себя, что мне не нужно (нужно «перекрестное замыкание»). (Примерно тоже самое, что замыкнуть перекрестно 2 com-порта и использовать /dev/stty0 и /dev/stty1).

Насколько я понял, лучше такую передачу поточных данных реализовать через символьное устройство, даже я примерно предствляю как (особенно после прочтения материала нижу), но я не силен в Cи.

Может есть какие-нибудь уже существующие решения моего вопроса? Помогите люди добрые кто чем сможет :)

http://takeworld.blogspot.com/2010/05/character-device-linux.html http://takeworld.blogspot.com/2010/05/linux-kernel-sleep.html

а кто мешает просто создать два чардевайса и использовать lock на время записи?

lazyklimm ★★★★★
()

Сделать ссылку на /dev/foo1. А вообще не понятно, зачем это.

Booster ★★
()
Ответ на: комментарий от AITap

да, но как читать и писать в него с «другой» стороны? не со стороны приложения, а со стороны ядра (примерно также как bash это делает)?

ktulhu666 ☆☆☆
() автор топика
Ответ на: комментарий от ktulhu666

> как читать и писать в него с «другой» стороны?
socat PTY,link=./pty-1 PTY,link=./pty-2
Пишете в ./pty-1, читаете в ./pty-2 и наоборот.

AITap ★★★★★
()
Ответ на: комментарий от nanoo_linux

socat PTY,link=./pts-1,raw,echo=0 PTY,link=./pts-2,raw,echo=0

иначе валится мусор и может вылетель с ошибкой.

Огромное тебе спасибо! Я погуглил и нашел, как пользоваться socat в примерах, отличная тулза!

Читать с другой стороны и писать с другой стороны надо, чтобы псевдофайл сделать и скормить программе.

ktulhu666 ☆☆☆
() автор топика
Ответ на: комментарий от AITap

спасибо огромное! только там надо другие параметры для нормальной работы (см выше).

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