Gforth は、他の場所で作成されたパイプラインを使用できます(以下で説明します)。 独自にパイプラインを作成することもできます(see Pipes)。
Gforth にパイプライン入力する場合、 プログラムは stdin
から read-file
または
read-line
を使用して読み取る必要があります(see General files)。 Key
は入力の終わりを認識しません。 accept
のようなワードは入力をエコーするため、
通常はパイプラインからの読み取りには役に立ちません。 あなたは、
(Forthのテキスト・インタープリターはパイプライン入力を通訳(interpret)しようとしてしまうため、)Forth内のコマンド・ラインを使用する機会はなく、
OSのコマンド・ライン・オプションを使用して Forth プログラムを呼び出す必要があります。
あなたは type
、 emit
、 cr
などでパイプラインへ出力できます。
もう一方の端で既に閉じられているパイプラインに書き込むと、 Gforth は SIGPIPE シグナル(「パイプが壊れた」シグナル)を受け取ります。
Gforth はこれを例外 broken-pipe-error
に変換します。 あなたのアプリケーションがその例外をキャッチしない場合、
システムはその例外をキャッチして、 通常は黙って終了(exit)します(Forth コマンド・ラインで作業している場合を除き、
エラー・メッセージを出力して終了します)。 これは通常、 望ましい動作です。
この振る舞いが気に入らない場合は、 自分で例外をキャッチし、 対応する必要があります。
ここで、 パイプライン内で使用できる Gforth の呼び出しの例を以下に示します:
gforth -e ": foo begin pad dup 10 stdin read-file throw dup while \ type repeat ; foo bye"
この例では、 入力をそのまま出力にコピーするだけです。 この例を含む非常に単純なパイプラインは以下のようになります:
cat startup.fs | gforth -e ": foo begin pad dup 80 stdin read-file throw dup while \ type repeat ; foo bye"| head
Gforth の stderr
出力に関連するパイプラインは機能しません。