使用物理文本文件的进程间通信

时间:2015-04-10 06:17:54

标签: python c++ pipe inter-process-communicat

我正在通过websocket API实时阅读我的​​经纪人的财务数据。客户端是用Python编写的。我有另一个C ++程序读取该数据,但我与python脚本通信的方式是通过物理文本文件。

我的问题是......

1)是否经常重写文本文件,每次打开,阅读和关闭它都会影响性能?如果是这样,有什么更好的方法呢?我的应用程序的性能至关重要。

2)使用命名管道会更好吗?或者这与写入和阅读文本文件几乎相同?

1 个答案:

答案 0 :(得分:4)

现代操作系统支持许多不同的IPC。管道,命名管道,套接字,内存映射文件,......一种解决方案或另一种解决方案的选择非常依赖于您的应用程序。但从广义上讲,所有这些都应该更好"而不是使用普通文件。

由于IPC是由OS管理的对象,它们依赖于用于编写各种进程的语言。某些IPC具有文件语义(管道,命名管道)。其他需要使用一些专用系统原语(mmap)。但是C ++和Python(以及许多其他语言)将支持所需的系统调用。事实上,IPC是伟大的来帮助用不同语言编写的软件能够一起说话。