IXOFF
не реализован на псевдотерминале -tty, а установка IXOFF
на псевдотерминале -не имеет никакого эффекта.
IXOFF
должен заставить драйвер tty отправлять символ VSTOP
на другую сторону, когда его очередь ввода заполнена (, что должно предотвратить отправку дополнительных данных ), и символ VSTART
, когда он обработал его, и есть место для дополнительных данных.
Это отличается от IXON
, что заставит драйвер tty учитывать символы VSTART
/ VSTOP
, отправленные с другой стороны, и при получении символаVSTOP
(^S
)останавливать любую передачу до VSTART
(^Q
). ] получен символ.
В случае псевдо -tty "другая сторона" является основным терминалом, т.е. эмулятор вашего терминала; когда вы нажимаете ^S
, это IXON
, а не настройка IXOFF
, которая заставит подчиненный tty перестать возвращать введенные символы и отображать записанные в него данные (, которые будут поставлены в очередь до тех пор, пока очередь вывода не будет заполнен, когда любой write(2)
подчиненному tty либо заблокирует, либо вернетEAGAIN
).
Реализация управления потоком на псевдо -ttys не требуется, потому что ядро всегда знает (путем проверки поля структуры или аналогичного )того, заполнена ли входная очередь подчиненного устройства, и может просто заблокировать процесс записи на мастер pty.
Программное управление потоком полезно только при использовании реального последовательного соединения без исходящих -из -сигналов диапазона, таких как RTS/CTS :, в отличие от Unix, TCP или других «конвейеров». абстракция, провод не буферизируется и не будет заполняться и блокироваться, пока получатель не прочитает все изменения состояния с него.