После поиска кажется, что ASCII EOF есть -1
, но как я могу echo
это сделать?
Моя цель сделать это, чтобы проверить, работает ли он так же, как нажатие, ctrl-d
если я только что echo
вышел EOF
.
Там нет никакого способа, чтобы повторить EOF. EOF может быть сгенерирован только путем достижения конца файла или путем нажатия клавиши, привязанной к eof
настройке терминала ( CtrlDпо умолчанию), когда считываемый файл привязан к терминалу.
EOF
определяется как-1
в stdio.h? почему не можем повторить это, если мы знаем его значение ascii?int
Со значением -1 (или 4294967295 , если мы рассмотрим беззнаковую версию) не может быть персонаж в любом случае , так как символы могут иметь только значение от 0 до 255 включительно.int
?fgetc(3)
справочной страницы.В bash вы можете написать
exec 1>&-
, чтобы закрыть дескриптор файла, известный как stdout.Как уже сказал Игнасио, EOF - это не персонаж, поэтому вопрос о том, как «повторить EOF», не имеет никакого смысла. Вы можете отображать символы (байты) или закрывать дескриптор файла, но вы никогда не сможете повторить EOF.
источник