On Sun, Jul 30, 2023 at 23:04:23 +0000, pouya+lists.net...@nohup.io wrote: > One of my use cases requires the child process to emit a binary > stream to be read by the parent. The parent is notified first via > a specific escape sequence. This almost works, except I can't > figure out how to disable output processing on this stream, and in > particular the parent receives extra CR characters for every LF > (NL) the child sends. > > I have tried setting every file descriptor I could think of to raw > mode (parent stdin, child stdin, both sides of the duplex fd between > parent and child) via the tcsetattr(3) gymnastics mentioned above, > to no avail.
FWIW, I have a simple program I've been using to debug kernel vt100 emulator, and: $ ./wsemul -- printf '\n' $ hexdump -C wsemul.raw 00000000 0d 0a |..| 00000002 $ ./wsemul -- sh -c 'stty raw; printf "\n";' $ hexdump -C wsemul.raw 00000000 0a |.| 00000001 where wsemul.raw is the (unfortunately named) dump of everything received from the slave on the master side. The program doesn't do anything fancy with the pty. https://hg.sr.ht/~nbuwe/wsemul/browse/run.c?rev=tip -uwe