在cpp程序之间交换变量

Exchange a variable beetwen cpp programs

本文关键字:交换 变量 之间 程序 cpp      更新时间:2023-10-16

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

在一个非常简单的例子中:

B.cpp:

int x=0;
cout<<"define xt";
cin>>x;

A.cpp:

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

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

我该怎么做?

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

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

参见如何使用管道在两个程序之间发送一个简单的字符串?

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

套接字-通过网络接口发送的数据流,可以发送到同一台计算机上的不同进程,也可以发送到网络上的另一台计算机。

共享内存——多个进程被授予对同一块内存的访问权,这为进程之间的通信创建了一个共享缓冲区。