Control-D - символ конца файла в каноническом режиме.При вводе в начале строки это приводит к тому, что процесс видит условие EOF, то есть чтение возвращает 0. Однако, если Control-D введен где-то, кроме начала строки, онпросто заставляет чтение немедленно вернуться с тем, что было введено до сих пор.
Если вы дважды нажмете Control-D, вы увидите, о чем вы спрашиваете.
РЕДАКТИРОВАТЬ
Здесь является довольно хорошим объяснением.