Any implementation of getchar() that does not require an entire line to be typed before returning data from the terminal in the default case is broken. This behavior is permitted only in raw (non-canonicalizing) mode, which is not supposed to be enabled by default. Sounds like VAX-C ver 2.2 is doing this right.