使用 system() 执行二进制文件和使用 fork/execvp 的组合有什么区别。
是否存在任何安全性/便携性/性能差异。
最佳答案
系统还使用 fork
/exec
... 组合。如果您自己执行 fork
/exec
您可以与正在运行的进程并行执行,而 system
正在阻塞(包括 wait
)。
system
也不是直接执行命令,而是通过 shell(这会导致 setuid 位出现问题)和 system
阻止/忽略某些信号(SIGINT、SIGCHILD、SIGQUIT)。
关于c++ - 使用 fork/execvp 和系统调用的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/304784/