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