c++ - 使用 fork/execvp 和系统调用的区别

标签 c++ c linux unix

使用 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/

相关文章:

c++ - 为什么我的复制赋值运算符从未被调用过?

c - 如何在二进制 gtk 应用程序中嵌入 `.ui` 文件?

c++ - 如何使用 OpenGL 和 C++ 加载多个纹理?

c++ - C++ 中的任务监视器和管理器

c - 这个 tcp 套接字代码如何处理 rx 缓冲区?

linux - 如何在 Linux 中终止后台 while 循环?

python 程序不工作 apt-get install xvfb

linux - 如何在 Linux 中使用 curl 或任何 shell 脚本或任何命令行实用程序将整个目录上传到 artifactory?

c++ - vswprintf 崩溃

c - 通用标记语言解析器