交换变量beetwen cpp程序

时间:2015-05-24 12:12:44

标签: c++

我正在使用ubuntu 12.04,我需要将一个int变量从cpp程序交换到另一个。 程序A.cpp必须使用int变量,但是这个int变量的值必须在程序B.cpp中定义

一个非常简单的例子:

B.cpp:

int x=0;
cout<<"define x\t";
cin>>x;

A.cpp:

int y=0;
y=x+5;
cout<<y;

A.cpp和B.cpp是两个不同的cpp程序,变量x不应该是静态的,在执行A.cpp后我必须更改x值而不退出执行

我该怎么做?

1 个答案:

答案 0 :(得分:3)

最简单的方法是创建一个命名管道。在linux下,您可以使用A.cpp中的mkfifo()来创建管道,然后将其用作普通文件。打开它以便在A.cpp中书写并在那里写下y,并在B.cpp中打开相同的管道进行阅读,然后从那里阅读x

还有其他方法,但这似乎是最简单的。

另见How to send a simple string between two programs using pipes?

有关更详细的讨论,请参阅https://en.wikipedia.org/wiki/Inter-process_communication。我认为最值得一提的是

  

套接字 - 通过网络接口发送到同一台计算机上的另一个进程或网络上另一台计算机的数据流。

  

共享内存 - 允许多个进程访问同一块内存,从而为进程创建共享缓冲区以便彼此通信。