0x04 - это ^ D, которое является нажатием клавиши в конце файла.Pty был установлен в необработанном режиме?Может быть, его съел водитель.
Если вы сделаете это:
os.write(child_fd, b"'\x04hmm\x16\x04'\n")
, вы увидите, что драйвер действительно выполняет перевод.\x16
- это то же самое, что ^ V, как вы цитируете вещи.Имеет смысл, что перевод будет происходить только от ведущего (притворного физического терминала) и ведомого.Предполагаемый физический терминал - то, где (на обычном терминальном устройстве) человек будет печатать
Я не уверен, как заставить драйвер прекратить делать это.Если дочерний элемент устанавливает свой терминал в необработанный режим, он, вероятно, сделает это.