web-dev-qa-db-ja.com

FIFO / ptyでゼロバイト読み取りをトリガーする

^ DのICANON動作をエミュレートする方法を知りたいです。つまり、FIFOまたはPTYまたはPTYのもう一方の端にあるプログラムで、ゼロバイトでさえも即時に読み取られます。特に、stdinでスクリプトを読み取り、ゼロバイトの読み取りが行われ、入力を読み取ってスクリプトをフィードするという仕様のプログラムがあり、この機能を自動的にテストしたいと思います。

もちろん、ゼロバイトの読み取りがないため、単にFIFOに書き込むだけでは、正しいことが起こりません。ヘルプ?

ありがとう!

2
nwf

私の知る限り、この動作は端末デバイスに固有のものであるため、これを使用する必要があります。

スレーブ側がICANONモードの疑似ttyを使用して、 Ctl-d'\4')マスター側に。

2
Barmar

どうですか:

echo -n '' > /path/to/the/fifo

echo -nは改行を生成せず''は空の文字列です。したがって、FIFOには何も(0バイト)書き込まれません。

そのechoを文字通り何もない状態に短縮できます。

> /path/to/the/fifo

(他の出力を配管していると誤解しないように注意する場合)

1
frostschutz