После поиска кажется, что 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?