Ctrl+Dпри вводе в начале строки на терминале означает конец ввода. Это не сигнал в смысле Unix: когда приложение читает с терминала и пользователь нажимает Ctrl+D, приложение уведомляется о том, что достигнут конец файла (как если бы он читал из файла и прошел последний байт).
Ctrl+Cдействительно посылает сигнал, SIGINT . По умолчанию SIGINT (сигнал прерывания) убивает приложение переднего плана, но приложение может перехватить сигнал и реагировать по-другому (например, сама оболочка ловит сигнал и прерывает строку, которую вы начали печатать, но это не так). t выход, он показывает новое приглашение и ждет новой командной строки).
Вы можете изменить символы, связанные с концом файла и SIGINT, с помощью stty
команды, например stty eof a
, сделать a
символ конца файла и stty intr ^-
отключить символ SIGINT. Это редко полезно.
Ctrl+D
Ctrl и заглавная D или это не имеет значения?