私は2つのC++アプリケーションを「呼び出し元」と呼ばれる最初の呼び出しと呼び、2番目の呼び出しは「プロセッサ」としたいと思います。2つのアプリケーション間でデータの送受信を行います
呼び出し元アプリケーションがプロセッサに値を送信します。そのプロセッサがその値で何らかの処理を行った後、それを呼び出し元に返します。
私はそれを行う最善の方法を知りたいと思います。
これまでのところ、呼び出し側アプリケーションからプロセッサアプリケーションに値を送信する方法はわかっていましたが、値を返す方法が見つかりませんでした。 putenvを()とのgetenv()
発信者の例を用いて本方法の一
#include <iostream>
#include <stdlib.h>
using namespace std;
int main(int argc, char **argv, char** envp){
char myvar[]="MYVAR= say something";
putenv(myvar);
cout<<getenv("MYVAR")<<endl;
system("./processor");
cout<<getenv("MYVAR")<<endl;
}
プロセッサの例が存在する場合には、呼び出し元に、プロセッサからの値を返すように修正してする方法
#include <iostream>
#include <stdlib.h>
using namespace std;
int main(int argc, char **argv, char** envp){
char myvar[]="MYVAR= say something else";
putenv(myvar);
cout<<getenv("MYVAR")<<endl;
}
それはもっと良い方法です。私はUbunut OSを使用しています。
1ワード:ソケット。 – chris
シェルプロンプトで 'man ipc'と入力してください。 –
@Chris同じマシンで2つのアプリケーションを使用しています。ソケットを使用するとパフォーマンスが低下します。私はアプリケーション間でローカルコールや共有メモリが必要です。 – user8580