FIFO/ptyで0バイトの読み出しトリガ

FIFO/ptyで0バイトの読み出しトリガ

^DのICANON動作をシミュレートする方法を知りたいです。つまり、FIFO、PTY、ソケットなど、もう一方の端にあるプログラムで即座に読み取りまたはゼロバイトの読み取りをトリガーします。特に、0バイトを読むまで標準入力からスクリプトを読み、次に入力を読み取ってスクリプトを提供する仕様のプログラムがあり、この機能を自動的にテストしたいと思います。

もちろん、FIFOに書き込むだけでは正しいことは起こりません。読み取ったゼロバイトがないからです。助ける?

ありがとうございます!

答え1

私が知る限り、この動作はエンドデバイスによって異なりますので、それを使用する必要があります。

スレーブ側がモードの擬似端子を使用し、マスター側に()をICANON書き込みます。Ctl-d'\4'

答え2

何について:

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

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

echoほとんど何もないことで短縮できます。

> /path/to/the/fifo

(これを他の出力をパイプすることで誤解しないように注意するなら)

関連情報