gpt4 book ai didi

c - C中的popen()和system()有什么区别

转载 作者:太空狗 更新时间:2023-10-29 16:26:42 25 4
gpt4 key购买 nike

我想在我的 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com