GNU/Linux >> Tutoriels Linux >  >> Linux

Comment exécuter un programme C++ dans un autre programme C++ ?

Vous devrez écrire votre propre compilateur.

Considérez :aucun système d'exploitation normal ne prend en charge ce que vous voulez. Vous voulez que les deux exécutables s'exécutent dans un seul processus, mais ce processus peut ou non effectuer des appels au système d'exploitation en fonction de certaines bizarreries à l'intérieur du processus que le système d'exploitation ne comprend pas du tout.

Ce n'est plus un problème avec votre compilateur personnalisé, car il ne créera tout simplement pas les instructions incriminées. C'est similaire à Java et .Net, qui empêchent également de tels appels de système d'exploitation hors de leur contrôle.


Une solution portable :Google Native Client

Une solution Linux possible :

  1. Créer un profil AppArmor avec des "chapeaux" (un "chapeau" est une configuration de sandboxing vers laquelle l'application peut basculer par programme avec libapparmor),
  2. demander à l'application principale de créer un "tuyau",
  3. avoir l'application principale "fork",
  4. changer en "chapeau" correspondant à l'application fille,
  5. "exec" l'application enfant,
  6. l'application principale et l'application enfant communiquent via le "pipe" créé précédemment.

Linux
  1. Comment exécuter un programme spécifique en tant que root sans invite de mot de passe ?

  2. Comment écrire et exécuter votre premier programme Qt dans Debian 10

  3. Comment envoyer un signal au programme exécuté dans un conteneur Docker ?

  4. Comment exécuter une tâche cron dans un conteneur docker

  5. Comment exécuter un programme au démarrage ?

Comment exécuter des programmes C/C++ sous Linux [Terminal &Eclipse]

Comment compiler et exécuter un programme C sous Linux

Comment exécuter des programmes Java dans Ubuntu

Brilliant Ways sur la façon d'exécuter un programme sous Linux

Comment écrire et exécuter un programme C sous Linux

Comment lier libcurl à mon programme c++ sous Linux ?