`stty line NUMBER`は正確に何をしていますか?

`stty line NUMBER`は正確に何をしていますか?

~によるとこれこのページでは、このフィールドは、ユーザーがバックスペースキーまたは^ Cを押したときに発生する結果を決定する「行規則」を説明します。本質的にプログラムがread(2)

しかし、設定には何の影響もないようです。私のLinuxボックスには2つの行規則があります。

$ cat /proc/tty/ldiscs
n_tty       0
n_null     27

しかし、$ stty line 27何の影響も与えないようです。バックスペースキーはまだうまく機能します。

ただし、これを行うと$ stty -icanon1つの変更が表示されます。バックスペースキーが正しく機能しなくなり、プログラムは内容を文字ごとに読み込みます(read(2)常に1文字だけが返されるようです)。

ここで何が起こっているのでしょうか?

ベストアンサー1

ワイヤ規律は、ttyドライバとttyコアの間の階層です(次の画像を参照)。ここ): ここに画像の説明を入力してください。

27(tty_null)に設定すると、日付はチャートの左側を横切ります(行ルールをスキップ)。 0に設定されている場合は、raw入力を処理できる基本的な接続規則を渡します。料理入力する。

TTY(0)
    The default line discipline, providing transparent operation (raw mode)
    as well as the habitual terminal line editing capabilities (cooked mode).

その他の科目リストはここ

自分で作成したり、既存のものを使用したりできます。モジュールがあり、slipそれを接続すると、modprobe slip次のことがわかります。

$ cat /proc/tty/ldiscs 
n_tty       0
slip        1
n_null     27

これにより$ stty line 27ラインルールが削除され(空のラインルールに設定されます)、これによりネイティブモードでデフォルトの$ stty -icanonラインルールが設定されます。

おすすめ記事