является ли control-d знаком остановки по умолчанию для stdin? в Linux C?

#c #linux #terminal

#c #linux #терминал

Вопрос:

является ли control-d знаком остановки по умолчанию для stdin?

В нашем домашнем задании говорится, что command-d будет останавливать ввод.

Это значение по умолчанию?

Ответ №1:

Ctrl-D в терминале Linux с настройками по умолчанию это маркер конца файла для stdin.

Смотрите также демистифицированный tty и команду stty(1)termios(3) …). Используйте, например, feof(3) после некоторой операции stdio или сравните результат getc(3) с EOF (и т.д…..), Чтобы определить условия окончания файла!

Комментарии:

1. В Windows Ctrl-Z преобразуется в EOF. Хотите знать, почему.

2. @Jakub: Почему Windows использует Ctrl-Z? Я думаю, что короткий ответ — «история». Из Википедии: Ранние операционные системы DEC использовали это соглашение, которое было заимствовано CP / M, а позже, в свою очередь, было заимствовано и продолжено в операционных системах MS-DOS и Microsoft Windows.

3. Ага. Но кто-то, должно быть, сделал выбор в IBM / Microsoft. В любом случае, я хотел подчеркнуть, что это не был ответ на C, он зависит от платформы.