は、 などのagetty.c
一部の文字@
を特別な として扱います。@
ログイン プロンプトで記号を入力すると、すべてのテキストが削除されます。セキュリティと関係がありますか、それとも設計上、特殊文字として扱われますか?
2 に答える
ソースを見ると、両方@とCtrlUがラインキルキャラクターの同義語であることがわかります。
これは、TTYラインの分野でフロー制御にNAK(Ctrl-U)などの制御文字が使用されていた時代の歴史的な遺物です。使用可能な文字セットにハードウェア制限を課すシステムはまだいくつか存在し@
ますが、実際のCtrl-Uを送信して0x15として受信することができない、3つのデバイスのような歴史的な遺物はまだ残っています。#の歴史的な同義語と同じ機能も表示されBSます。
非常に限られたビンテージデバイスを無視しても、特にgettyとsttyの古い習慣は、「私たちは常にそのようにしてきた」ために存続します。
マクロ: int VKILL これは、特殊制御文字配列内の KILL 文字の添え字です。termios.c_cc[VKILL] は文字自体を保持します。KILL 文字は正規入力モードでのみ認識されます。ユーザーが kill 文字を入力すると、現在の入力行の内容全体が破棄されます。キル文字自体も破棄されます。
通常、KILL キャラクターは Cu です。もっと...
別の説明@
:
歴史的なメモとして、元の消去文字は # で、元のキル文字は @ でした。これらの割り当ては、端末が本物の紙に本物のインクで印刷され、多くの騒音を発していた昔にまでさかのぼります。ただし、これらの設定がまだデフォルトになっている最新のシステムがいくつかあると言われています。