次の C コードの実行
#include <stdio.h>
int main(int argc, char **argv) {
char stdinput[10];
while (1) {
fgets(stdinput, 10, stdin);
fputs(stdinput, stdout);
}
}
生成:
コンソールで:
./a.out
input
input
その後、さらに入力を待ちます。つまり、 と同様に、stdin を stdout にエコーしcat
ます。
パイプで:
echo input | ./a.out
input
input
input
[...]
開始されると、操作なしで単独でコンソールをフラッディングします。
このサンプル プログラムは、まさに私がテストに使用したものです。それはカットではありません。2 つのテストが同じように動作することを期待します。何が起こっていますか?