-1

有没有办法编写 C++ 程序来处理在 Linux 和 Windows 中工作的 IPC?是否有任何 C++ 库在不依赖操作系统的情况下执行此操作?

4

2 回答 2

3

如果“消息”是指 IPC(进程间通信),那么不,没有操作系统的参与是不可能的,而且在宇宙中可以找到的每个操作系统上,实现它的方式可能都不同。如果“消息”是指在应用程序中传递数据的任何方式,那么是的,它可以而且应该在没有操作系统参与的情况下完成。

在 IPC 的情况下,您总是可以使用Boost.IPC,如果您只需要传递消息。当然,如果你还需要获取 UI 事件等,那是不够的;Qt是 C++ 中常用的可移植 GUI 工具包之一(不是说它漂亮,但它可以工作)。

于 2013-01-10T23:03:36.973 回答
0

如果您正在谈论套接字(又名 TCP/IP 或 UDP/IP),那么您可以使用套接字库,如果您小心的话,您可以在 Windows 和 Unix 变体上使用相同的代码。但是跨平台套接字 API 只有非常有限的异步能力(select调用及其相关的可伸缩性问题)。

您也可以使用libevent。那是跨平台的,并且具有更丰富的异步语义。

对于命名管道或 fifos 之类的东西......我知道没有好的跨平台库来处理这些东西。

于 2013-01-10T23:13:58.140 回答