我开发了一个 Unix 应用程序,其中两个申请人运行并使用命令行相互交谈,即每个人都有一个类似的循环(将其视为伪代码):
bool stop=false;
do
{
stringstring cmdBuffer;
cin >> cmdBuffer
string ret = processCommand(cmdBuffer);
if(ret.length()==0)
stop=true;
else
cout << ret;
}
while(!stop);
两个 Windows 应用程序不能做同样的事情有什么原因吗?它们是否必须在相同的“命令提示符”上运行或者是控制台应用程序,或者命令行的概念是否超出了能够在我面前看到命令提示符的范围?
作为引用,在我的例子中,一个应用会运行另一个,它们不是两个独立运行的独立应用。
最佳答案
我会说重定向输入和输出句柄 (SetStdHandle
),但使用 named pipe更安全,更安全,而且您可以在上面使用同步功能。
您也可以改用全局互斥锁/事件或映射内存,因为它们都是全局命名的并且易于获取/设置和读/写。
关于c++ - 两个 Windows 应用程序可以使用命令行进行通信吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3308196/