Quelles sont les relations entre les caractères de contrôle et les signaux ? Ou sont-ils sans rapport ?
Les caractères de contrôle sont-ils reçus par un terminal ?
Une fois qu'un terminal a reçu un caractère de contrôle, le terminal envoie-t-il un signal à un processus parmi les actions possibles du terminal sur le caractère de contrôle reçu ?
Par exemple,
sous Linux, dans un terminal, Ctrl+C mettra fin à un processus de premier plan en cours d'exécution. En ASCII, Ctrl+C est un caractère de contrôle qui signifie « Fin du texte ».
En ASCII, Ctrl+D est un caractère de contrôle qui signifie la fin de la transmission. Le caractère de contrôle oblige-t-il le terminal à envoyer un signal à un processus ?
Réponse acceptée :
Le pilote de terminal (partie du système d'exploitation) établit la relation entre les caractères spéciaux et les signaux. Vos paramètres de terminal , par exemple, en utilisant stty
, sont ce qu'il utilise pour décider quoi faire (le cas échéant) avec les caractères que vous tapez. Vous pouvez réaffecter ces caractères spéciaux selon vos besoins avec quelques mises en garde :
- un seul caractère spécial par fonction
- Seuls les caractères à un octet sont utilisés
contrôle C et contrôler D sont conventionnels :bien que quelques applications puissent coder ces valeurs en dur, le pilote de terminal ne l'exige pas.
Le pilote du terminal est un logiciel, il ne fait pas partie de votre terminal . Pour certains claviers, vous pouvez trouver différentes affectations de caractères spéciaux plus pratiques que d'autres (et pour différents systèmes d'exploitation, quelques choix de valeurs par défaut pour les caractères spéciaux peuvent différer).
Lectures complémentaires :
- 11.1.9 Caractères spéciaux (POSIX *Interface générale du terminal)
- 11. Interface générale du terminal
- stty – définir les options d'un terminal