Quali sono le relazioni tra caratteri di controllo e segnali? O sono estranei?
I caratteri di controllo vengono ricevuti da un terminale?
Dopo che un terminale ha ricevuto un carattere di controllo, il terminale invia un segnale a un processo una delle possibili azioni del terminale al carattere di controllo ricevuto?
Ad esempio,
in Linux, in un terminale, Ctrl+C interromperà un processo in primo piano in esecuzione. In ASCII, Ctrl+C è un carattere di controllo che significa "Fine del testo".
In ASCII, Ctrl+D è un carattere di controllo che significa fine della trasmissione. Il carattere di controllo fa sì che il terminale invii un segnale a qualche processo?
Risposta accettata:
Il driver del terminale (parte del sistema operativo) stabilisce la relazione tra caratteri speciali e segnali. Le tue impostazioni del terminale , ad esempio, utilizzando stty
, sono ciò che usa per decidere cosa (se non altro) fare con i caratteri digitati. Puoi riassegnare quei caratteri speciali secondo necessità con alcuni avvertimenti:
- solo un carattere speciale per funzione
- vengono utilizzati solo caratteri a byte singolo
controllo C e controllo D sono convenzionali :mentre alcune applicazioni possono codificare questi valori, il driver del terminale non lo richiede.
Il driver del terminale è un software, non fa parte del tuo terminale . Per alcune tastiere potresti trovare diverse assegnazioni di caratteri speciali più convenienti di altre (e per diversi sistemi operativi, alcune scelte dei valori predefiniti per i caratteri speciali potrebbero differire).
Ulteriori letture:
- 11.1.9 Caratteri speciali (POSIX *General Terminal Interface)
- 11. Interfaccia terminale generale
- stty:imposta le opzioni per un terminale