system()在linux中是如何工作的?

我一直在阅读它的手册页,但还没有成功地弄清楚它是如何工作的。 在调用system()时,是一个新的subprocess分叉和shell二进制exec() – 在它呢? 这可能是一个愚蠢的猜测。

Solutions Collecting From Web of "system()在linux中是如何工作的?"

是的,system()本质上是一个fork()和exec()“sh -c”,用于传递的命令字符串。 可以在这里找到一个示例实现(来自eglibc,最近由glibc分支)。

是的,system(“foo bar”)等同于execv(“/ bin / sh”,[“sh”,“-c”,“foo bar”])。