Обеспечение постоянства /dev/pts/XX при повторных подключениях клиентов

Я разрабатываю эмулятор для последовательного устройства и для этого использую /dev/ptmx интерфейс для создания псевдотерминального главного дескриптора и соответствующего ведомого в /dev/pts/XX, Все работает, пока клиент не открылся /dev/pts/XX закрывает это. Тогда главный дескриптор, очевидно, тоже закрывается. Есть ли способ заставить master-fd выжить при повторных подключениях клиентов? Мне нужен серверный процесс, который может продолжать обслуживать своего клиента, который может приходить и уходить.

Если есть лучший способ эмулировать последовательное устройство, советы также приветствуются!

1 ответ

Решение

Сделай сам сервер, открой раб в O_WRONLY и сохраняйте полученный fd до тех пор, пока сервер обслуживает. Похоже, что подчиненные ptys могут открываться несколько раз и подсчитываться по ссылкам, поэтому, пока сервер поддерживает один открытый, другие процессы могут открывать и закрывать его любое количество раз.

Другие вопросы по тегам