|
FTXUI 6.1.9
C++ functional terminal UI.
|
POSIXパイプは、2つの異なるプログラムが通信する方法です。一方のプログラムは、その出力を別のプログラムへの入力として直接送信します。データを運ぶ一方通行のチューブのようなものと考えてください。
例:
ファイルを一覧表示し、対話的にフィルタリングしたいと想像してください。
ls: ファイルを一覧表示します。interactive_grep: テキストをフィルタリングし、入力できるFTXUIアプリケーションです。それらをパイプ (|) で接続できます。
何が起こるかというと:
ls -l は詳細とともにファイルを一覧表示します。| はこのリストを interactive_grep に直接送信します。interactive_grep はリストを受け取り、表示します。FTXUIアプリケーションであるため、ls から初期データを受け取ったにもかかわらず、入力してリストをフィルタリングできます。POSIXパイプとは何かを理解したところで、FTXUIがそれらをどのように使用するかを見てみましょう。
FTXUIは、アプリケーションが他のプログラム(パイプからのデータなど)からデータを読み取りながら、キーボードでの対話も可能にします。これは、データを処理する対話型コマンドラインツールに役立ちます。
通常、FTXUIアプリケーションはすべての入力を stdin から受け取ります。ただし、FTXUIが stdin がパイプの出力に接続されていることを検出すると(つまり、データがアプリケーションにパイプされていることを意味します)、自動的に /dev/tty から対話型キーボード入力を読み取るように切り替わります。これにより、アプリケーションはパイプされたデータを処理している間でもユーザー入力を受け取ることができます。
この機能は**デフォルトでオン**になっています。
FTXUIアプリケーションがパイプされたデータを読み取り、キーボード入力にも応答する必要がある場合、通常は特別なことをする必要はありません。
この機能が必要ない場合、またはカスタム入力処理と競合する場合は、オフにすることができます。
無効にするには、アプリケーションのメインループを開始する前に HandlePipedInput(false) を呼び出します。