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

2024-01-01

我想在我的 C 代码中执行二进制文件。哪个更好执行?popen() or system()

EDIT: 我尝试使用system,但是执行的进程似乎最终卡住了并且没有返回到我的代码。

有什么建议吗?

Thanks


popen()使您可以控制进程的输入或输出文件流。system()没有。如果不需要访问进程的I/O,可以使用system()为了简单起见。

system()属于 C89 和 C99;popen()仅限 Posix(尽管 Windows API 也有)。

这两个函数都调用某种形式的shell执行命令(例如/bin/sh在 Linux 上,并且可能cmd.exe在 Windows 上)。如果你想直接执行一个可执行文件并且你在Posix上,你也可以看看exec*- 一系列函数结合fork() (since exec() replaces当前进程)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C中的popen()和system()有什么区别 的相关文章

随机推荐