Стандартный ввод для чтения, а не записи.Что происходит, когда вы пишете в стандартный ввод (или читаете из стандартного вывода), не определено.Здесь и стандартный ввод, и стандартный вывод указывают на псевдотерминал, в который запускается приложение, и эмулятор терминала не позаботился о том, чтобы сделать дескриптор '0' доступным только для чтения.Следовательно, ядро не запрещает запись в стандартный ввод и отправляется на псевдотерминал так же, как если бы оно было записано в стандартный вывод.
Для переносимости не следует полагаться на такое поведение.