c++ - 如何在另一个 C++ 程序中运行一个 C++ 程序?

标签 c++ linux shell

我将在下面勾勒出我想要开始工作的场景。

我有一个主要应用程序。 该应用程序基于用户交互,可以在安全环境/shell 中加载其他应用程序。这意味着这些子应用程序不能再与操作系统交互,也不能相互交互。

父程序可以随时调用这些子程序的函数。 子程序可以随时调用这些父程序的函数。

有谁知道如何在 C++ 中实现它?最好 parent 和 child 都用 C++ 编写。

在父应用程序中加载子应用程序的性能并不重要。唯一重要的是子进程和父进程在调用彼此的函数时的通信性能。

最佳答案

您必须编写自己的编译器。

考虑:没有正常的操作系统支持您想要的。您希望两个可执行文件都在单个进程中运行,但该进程可能会或可能不会进行操作系统调用,具体取决于操作系统根本不理解的进程内部的一些怪异现象。

这不再是您的自定义编译器的问题,因为它根本不会创建有问题的指令。它类似于 Java 和 .Net,它们也可以防止此类 OS 调用不受其控制。

关于c++ - 如何在另一个 C++ 程序中运行一个 C++ 程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17556812/

相关文章:

Linux bash 脚本卡在 sleep 状态

linux - shell脚本中"if[ 0 -lt 1] command not found"错误

linux - 重定向 Bash 子脚本的输出

node.js - NodeJS如何将文件从项目目录复制到执行目录?

c++ - 实现对所有位的加法和访问的位集

c++ - std::sort 和 std::unique 结构问题

Linux CPU 频率缩放影响 timerfd 精度

python - 从 bash 导出变量并在 Python 中使用它

c++ - Max SubArray kadane 算法

C++11 STL 队列 emplace(Args&&... args) 和 swap(queue& x)