GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie führe ich ein C++-Programm in einem anderen C++-Programm aus?

Sie müssen Ihren eigenen Compiler schreiben.

Bedenken Sie:Kein normales Betriebssystem unterstützt das, was Sie wollen. Sie möchten, dass beide ausführbaren Dateien in einem einzigen Prozess ausgeführt werden, aber dieser Prozess kann Betriebssystemaufrufe durchführen oder auch nicht, abhängig von einer Verrücktheit innerhalb des Prozesses, die das Betriebssystem überhaupt nicht versteht.

Dies ist mit Ihrem benutzerdefinierten Compiler kein Problem mehr, da er die anstößigen Anweisungen einfach nicht erstellt. Es ähnelt Java und .Net, die auch solche Betriebssystemaufrufe außerhalb ihrer Kontrolle verhindern.


Eine portable Lösung:Google Native Client

Eine mögliche Linux-Lösung:

  1. AppArmor-Profil mit „Hats“ erstellen (ein „Hat“ ist eine Sandbox-Konfiguration, zu der die Anwendung programmgesteuert mit libapparmor wechseln kann),
  2. lassen Sie die Hauptanwendung eine "Pipe" erstellen,
  3. haben die Hauptanwendung "fork",
  4. ändern sich in einen "Hut", der der untergeordneten Anwendung entspricht,
  5. "exec" die untergeordnete Anwendung,
  6. die Hauptanwendung und die untergeordnete Anwendung kommunizieren über die zuvor erstellte "Pipe".

Linux
  1. Wie man ein C-Programm in Ubuntu kompiliert und ausführt

  2. Wie führe ich ein bestimmtes Programm als Root ohne Passwortabfrage aus?

  3. Wie führe ich einen Befehl in einem laufenden Systemd-Container aus?

  4. Wie führt man Chrom in einem Chroot aus?

  5. Wie führe ich ein Programm in einem Docker-Container aus?

So führen Sie C/C++-Programme unter Linux aus [Terminal &Eclipse]

Wie man ein C-Programm unter Linux kompiliert und ausführt

So führen Sie Java-Programme in Ubuntu aus

Geniale Möglichkeiten zum Ausführen eines Programms unter Linux

Wie man ein C-Programm unter Linux schreibt und ausführt

Wie verknüpfe ich libcurl mit meinem C++-Programm unter Linux?