in reply to Non-blocking IO and threads

IIRC, "the terminal is special." It's pretty much always going to be buffered, for both input and output. The days of a real TTY hooked to a serial port are (mostly) long gone now. Terminal I/O is multiplexed through a windowing system.