总结对比表
特性 | system() | popen() | 推荐场景 |
|---|---|---|---|
进程开销 | fork+exec(shell) | fork+exec(shell)+管道 | popen稍优 |
执行时间 | 较慢(有shell) | 较快 | 频繁调用用popen |
同步性 | 完全同步 | 可同步可异步 | 异步用popen |
并行性 | 串行执行 | 可并行启动 | 并行用popen |
获取输出 | 不能直接获取 | 可读取输出 | 需要输出用popen |
提供输入 | 不能 | 可写入输入 | 交互用popen |
错误处理 | 简单 | 较复杂 | 按需选择 |
安全性 | 低(shell注入) | 中 | 关键系统用execvp |
易用性 |