c++ - 从另一个程序向可执行文件发送参数

标签 c++ command-line system

我知道这可以使用平台的 system() 实现轻松完成。然而,据我所知,使用 system 通常不是最好的方法,并且可能导致安全缺陷。是否有针对此类问题的不同行业标准方法?用户可以使用哪些选项来执行此类操作?

我对 C/C++ 中的实现特别感兴趣,但我认为这种类型的东西不会依赖于语言;我怀疑它应该是特定于平台的。

最佳答案

您可能正在寻找标准的 POSIX 函数 forkexec* .这适用于类 Unix 平台(Linux 和 Mac)。

在 Windows 上,有 CreateProcess API。

forkexec 有点奇怪,因为 fork 完全复制您当前的进程,并为每个拷贝返回不同的结果。该程序的新拷贝然后应设置任何需要的设置(关闭不应在两个程序中打开的文件、更改环境变量等),最后调用其中一个 exec 函数,该函数用指定的程序替换该进程(同时维护当前打开的文件描述符等)。

关于c++ - 从另一个程序向可执行文件发送参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23680122/

相关文章:

bash - 在命令行将 BASH 参数传递给 gawk

c - fgets 函数未读取输入中的第一个字符

file - 实现文件系统的基础

C++有没有可能让一个类扩展一个类,同时又是一个接口(interface)的实现?

c# - P/调用互操作助手 : Is this actually correct?

curl - 使用 Curl 和 Windows 命令行将照片发布到 Twitter

ruby - 在 Ruby 中形成卫生 shell 命令或系统调用

c++ - 如何将奇怪的重复模板模式用于桥接模式?

c++ - 两步对象破坏背后的原因是什么?

unix - 使 "ls"命令在 "a"之前对 "B"进行排序(与 a->b->A->B)