1

以下に示す単純なコマンドラインc++プログラムがあり、コマンドラインからstdinを取得します。Macで2つのSSH端末を開いています。1つは/dev/ ttys001で、もう1つは/ dev/ttys000です。1つの端末で値をエコーし​​、プログラムを使用して2番目の端末のstdinで使用できるようにします。私はこれを達成できないようです。適切な構文は何ですか?ありがとう -

私は以下のバリエーションを試しましたが、運がありませんでした。./testを実行している端末では、番号の入力を求められ、他の端末からのエコーがコンソールに確実に表示されますが、プログラムによってstdinとして認識されませんか?

ターミナル1:

./test < /dev/ttys001

ターミナル2:

echo 2 > /dev/ttys001

私のプログラム:

#include <iostream>

using namespace std;

int main() {
    cout << "Enter a number: ";
    int nb;
    cin>>nb;
    cout << "Here is your number:" << nb << endl;
    return 0;
}
4

1 に答える 1

2

あなたがそのようにそれをすることができるかどうかはわかりません。ただし、名前付きパイプを使用することはできます。ターミナル1:

mkfifo mypipe

myprogram < mypipe

次に、ターミナル2で。

echo > mypipe

次に、入力します。ただし、コードは1回だけ実行されてから終了するように見えるため、ループを追加することをお勧めします。

于 2012-08-08T22:36:57.420 に答える