Welche Beziehungen bestehen zwischen Steuerzeichen und Signalen? Oder sind sie nicht verwandt?
Werden Steuerzeichen von einem Terminal empfangen?
Nachdem ein Terminal ein Steuerzeichen empfangen hat, sendet das Terminal ein Signal an einen Prozess, eine der möglichen Aktionen des Terminals für das empfangene Steuerzeichen?
Zum Beispiel
In Linux beendet Strg+C in einem Terminal einen laufenden Vordergrundprozess. In ASCII ist Strg+C ein Steuerzeichen und bedeutet „Textende“.
In ASCII ist Strg+D ein Steuerzeichen, das Ende der Übertragung bedeutet. Veranlasst das Steuerzeichen das Terminal, ein Signal an einen Prozess zu senden?
Akzeptierte Antwort:
Der Terminaltreiber (Bestandteil des Betriebssystems) stellt den Zusammenhang zwischen Sonderzeichen und Signalen her. Ihre Terminaleinstellungen , z. B. mit stty
, werden verwendet, um zu entscheiden, was (wenn überhaupt) mit den von Ihnen eingegebenen Zeichen geschehen soll. Sie können diese Sonderzeichen nach Bedarf mit einigen Einschränkungen neu zuweisen:
- nur ein Sonderzeichen pro Funktion
- es werden nur Single-Byte-Zeichen verwendet
Kontrolle C und Steuerung D sind konventionell :Während einige Anwendungen diese Werte hartcodieren können, erfordert der Terminaltreiber dies nicht.
Der Terminaltreiber ist eine Software, nicht Teil Ihres Terminals . Bei manchen Tastaturen sind unterschiedliche Zuweisungen von Sonderzeichen möglicherweise bequemer als bei anderen (und bei verschiedenen Betriebssystemen können einige Auswahlmöglichkeiten der Standardwerte für die Sonderzeichen abweichen).
Weiterführende Literatur:
- 11.1.9 Sonderzeichen (POSIX *General Terminal Interface)
- 11. Allgemeine Terminalschnittstelle
- stty – setzt die Optionen für ein Terminal