1

我有一个简单的命令行 c++ 程序,如下所示,它从命令行获取标准输入。我的 Mac 上打开了 2 个 SSH 终端。一个是/dev/ttys001,一个是/dev/ttys000。我想在一个终端中回显一个值,并使用我的程序在第二个终端的标准输入中使用它。我似乎无法做到这一点。什么是正确的语法?谢谢 -

我尝试了以下变体,但没有运气。在我正在运行 ./test 的终端中,它会提示输入数字,并且来自另一个终端的回显肯定会显示在控制台上,但程序不会将其视为标准输入?

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

然后打字。但是您的代码看起来只会执行一次然后终止,因此您可能需要添加一个循环。

于 2012-08-08T22:36:57.420 回答