我知道这可以使用平台的 system() 实现轻松完成。然而,据我所知,使用 system
通常不是最好的方法,并且可能导致安全缺陷。是否有针对此类问题的不同行业标准方法?用户可以使用哪些选项来执行此类操作?
我对 C/C++ 中的实现特别感兴趣,但我认为这种类型的东西不会依赖于语言;我怀疑它应该是特定于平台的。
最佳答案
您可能正在寻找标准的 POSIX 函数 fork
和 exec*
.这适用于类 Unix 平台(Linux 和 Mac)。
在 Windows 上,有 CreateProcess
API。
fork
和 exec
有点奇怪,因为 fork
完全复制您当前的进程,并为每个拷贝返回不同的结果。该程序的新拷贝然后应设置任何需要的设置(关闭不应在两个程序中打开的文件、更改环境变量等),最后调用其中一个 exec
函数,该函数用指定的程序替换该进程(同时维护当前打开的文件描述符等)。
关于c++ - 从另一个程序向可执行文件发送参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23680122/