c++ - 两个 Windows 应用程序可以使用命令行进行通信吗?

标签 c++ windows command-line

我开发了一个 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/

相关文章:

r - 在命令行 (shell/bash) : what to do when column names contain tilde (~) 中将参数传递给 R 脚本

batch-file - 使用通配符在命令行中删除文件夹

c++ - 从文本文件中读取 float 一直有效,直到超出 ifstream 范围 c++

c++ - 当模板成员函数有多个参数时,只传递第一个参数就足够了吗?

C++ 错误 - 缺少右引号\

windows - 如何使用 dart ffi 将回调传递给 win32 函数?

windows - 草莓 Perl : forgets environment variables?

c++ - 返回对类静态数据成员的引用的正确方法是什么? (我正在使用 Qt,以防它有所作为)

Linux命令打印树状目录结构

c++ - 将通用文件包含在一个头文件中有什么好处?