Everyone knows what ^D does on Unix; it generates an end of file, so that cat or various other programs will exit (especially if they have accidentally wound up reading from standard input). But this is just the usual effects of typing ^D; it is not what it actually does. What ^D actually does is simple but subtle: Typing ^D causes the tty driver to immediately finish a read(). Normally doing a re