1
我有一个简单的命令行C++程序,如下所示,它从命令行获取stdin。我在我的Mac上打开了2个SSH终端。一个是/ dev/ttys001,另一个是/ dev/ttys000。我想在一个终端中回显一个值,并使用我的程序在第二个终端的stdin中使用它。我似乎无法做到这一点。什么是正确的语法?谢谢 -UNIX在不同的终端将tty重定向到C++ stdin
我试过以下的变化,但没有运气。在运行./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;
}
感谢您的回应 - 当我做'./test mypipe'我的程序不做任何事情,或终止。有什么想法吗?? –
PhilBot
2012-08-08 23:33:57
谢谢,这在Linux(Ubuntu)至少工作...只是不是我的Mac。 – PhilBot 2012-08-09 01:56:25
这很奇怪,因为我在运行Mountain Lion的Mac上测试它。 – 2012-08-09 12:11:20