はい。

はい。

以下はASCII形式の制御文字です(黄色で強調表示されています)。

ここに画像の説明を入力してください。

これらの制御文字のいずれかを送信するにはライン規律たとえば、制御文字をCtrl+someChar送信するには、端末で入力します。0x03Ctrl+C

これで、Linuxは画像に表示されているすべての制御文字をサポートしますか、それとも一部をサポートしますか?


編集する:

「サポート済み」とは、次に送信できるかどうかを意味します。ライン規律ターミナルから。しかし、ちょうど次を見つけました。文書、14個の制御文字のみがサポートされていることが示されているので(ASCIIテーブルの33個の代わりに)私の質問に対する答えは次のとおりです。いいえ、ASCII テーブルのすべての制御文字がサポートされるわけではありません。

ベストアンサー1

はい。

端末は、シリアルデバイス(実際の端末の場合)を介して、必要な文字(コントロールなど)をラインフィールドに送信してからアプリケーションに送信できます。

ライン規約が次の場合非標準入力モード、私はあなたの「に答えている間行規律が制御文字を処理できないようにする「問題が発生した場合、アプリケーションは行規則がある場合は端末から送信された文字を読み取ることができます。標準入力モードこれにより、単語や行削除文字などの文字編集が行規則に従って実行されます。

最新のシェル(1980年代以降)は、非正規入力モードを使用し、すべての編集機能を独自に実行し、端末で生成された生の文字ストリームで動作します。これらのシェルが別のプログラムを呼び出すと、ターミナルを標準入力モードに切り替えるので、Cプログラムを実行するときにラインルール編集が適用されることがわかります。

端末からライン規約で送信できる場合は、「サポート済み」を意味します。ところで、「Linux control_codes(4) のマニュアルページ」を見つけたのですが、ここには 14 個の制御文字だけがサポートされるという内容が示されています。

入力と出力を混同しています。マニュアルページには、カーネルに組み込まれた端末エミュレータが制御コードを解釈する方法が記載されています。に送る端末は制御コードについては知らない。次から受信しました末端。

ASCIIの制御文字

ASCIIは7ビット文字セットです。また、1980年代から、実際には1980年代よりずっと前から8ビット文字セットに関するアイデアがありました。 8ビット文字セットには、2番目の制御コードセット「C1」制御コードがあります。

ラインに8つのデータビットがあるようにシリアルデバイスを設定し(実際の端末の場合)、ラインルールは8ビット文字をサポートし、再び非正規モードでは8ビットセット全体の各文字を送信できます。 C0制御コード、C1制御コードなど、端末からアプリケーションまで。

おすすめ記事