Lance um aplicativo C ++ a partir de outro e comunique-se com ele

Tenho um programa C ++ (tecnicamente MATLAB mex), que planejo usar para iniciar um programa escravo C ++ puro independente no meu sistema. O programa de chamada principal pode ser algo como o seguinte:

void mexFunction(int nlhs,mxArray *plhs[],int nrhs,const mxArray *prhs[]){
    system ("path/to/slave/program");
}

Quando o escravo for iniciado, eu gostaria de ter um segundo programa mexicano que se comunique e envie dados para o programa escravo. Os dados enviados serão na forma de matrizes C ++ grande

Imagino que precisarei de algum tipo de identificador para o programa escravo (talvez seja o seu pid?), Um método para enviar mensagens e, presumivelmente, uma maneira do programa escravo ouvir as mensagens recebida

Não tenho experiência em fazer com que programas C ++ separados se comuniquem, portanto, qualquer sugestão nessa área será apreciada. Além disso, se houver alguma advertência específica do México para MATLAB, eu estaria interessado em ouvir sobre elas.

EDITA: Eu deveria ter mencionado que estou construindo isso no Ubuntu, mas, em última análise, gostaria que ele funcionasse em todas as plataformas. Aconselhamento específico da plataforma é muito bem-vindo, mas as idéias de várias plataformas são realmente o que eu estou procurand

questionAnswers(5)

yourAnswerToTheQuestion