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