Inicie una aplicación C ++ desde otra y comuníquese con ella
Tengo un programa C ++ (técnicamente MATLAB mex), que estoy planeando usar para lanzar un programa esclavo C ++ puro e independiente en mi sistema. El programa maestro de llamadas puede tener un aspecto similar al siguiente:
void mexFunction(int nlhs,mxArray *plhs[],int nrhs,const mxArray *prhs[]){
system ("path/to/slave/program");
}
Una vez que se inicia el esclavo, me gustaría tener un segundo programa mex que se comunicará y enviará datos al programa esclavo. Los datos enviados serán en forma de matrices C ++ de gran tamaño.
Me imagino que necesitaré algún tipo de identificador para el programa esclavo (¿quizás sea pid?), Un método para enviar mensajes y, presumiblemente, una forma para que el programa esclavo escuche los mensajes entrantes.
No tengo experiencia en obtener programas C ++ separados para comunicarse entre sí, por lo que cualquier sugerencia en esta área sería apreciada. Además, si hay algunas advertencias específicas de MATLAB mex específicas, me interesaría saber sobre estas.
EDITA: Debería haber mencionado que estoy construyendo esto en Ubuntu, pero finalmente me gustaría que funcione en todas las plataformas. Consejos específicos de plataforma muy bienvenidos, pero las ideas multiplataforma son realmente lo que busco.