我想在我的 C 代码中执行一个二进制文件。执行哪个更好? popen()
或 system()
编辑:我尝试使用system
,但执行的进程似乎最后卡住了,没有返回到我的代码。
有什么建议吗?
谢谢
最佳答案
popen()
让您可以控制进程的输入或输出文件流。 system()
没有。如果您不需要访问进程的 I/O,可以使用 system()
来简化操作。
system()
在 C89 和 C99 中; popen()
仅适用于 Posix(尽管 Windows API 也有一个)。
这两个函数都调用某种形式的 shell 来执行命令(例如 Linux 上的 /bin/sh
,可能还有 cmd.exe
在 Windows 上)。如果你想直接执行一个可执行文件并且你在 Posix 上,你还可以查看 exec*
- 函数族与 fork()
的结合(因为 exec()
替换当前进程)。
关于c - C中的popen()和system()有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8538324/