2016-08-29 12 views
1

これまで調査したところでは、terminfo/termcapioctlは端末の画面上で(x、y)位置に文字を問い合わせることができません。これはむしろ予期せぬことです。理由は次のとおりです。端末の画面の文字を読む

  • 端末からの画面サイズ(例えばtput cotput li)、
  • つの端子

からの入力を読み取ることができます - 2は、端末との通信が双方向であることを意味します。 *inch**in_wch* curses関数(cursesウィンドウでのみ機能する)のように、指定された位置で文字を照会する方法はありませんか? (「予期しない」ではない)予想だ

答えて

1

  • tputは端末データベース(固定)とオペレーティングシステム(変更可能)の組み合わせから値を与えるが、にターミナルを聞かないありません。
  • 端末からの読み込みは、デバイスからの入力ストリームによるものです(どの端末が行うように設計されているか)。

一部の(すべてではない)端末は、カーソルがどこにあるかを端末に尋ねるエスケープシーケンスをサポートしています。 resizeプログラムはそれを使ってスクリーンサイズを取得します。しかし、マニュアルページで述べたように、端末に依存することが知られていることに注意してください:

-s[行列]
このオプションは、そのコンソールのエスケープシーケンスを示し、 VT100スタイルのxtermエスケープコードの代わりに が使用されます。

単純に画面から文字を読み取るエスケープシーケンスをサポートする端末はほとんどありません。誰もが、おそらく彼らの知識なしで画面—を読むことができるプログラムの概念を気に入っているわけではありません。

関連する問題