gpt4 book ai didi

c - 什么时候用system(),什么时候用execv*()?

转载 作者:太空狗 更新时间:2023-10-29 16:40:12 27 4
gpt4 key购买 nike

我需要在一个循环中执行一个带有不同参数的 unix 命令。现在我想知道我是应该使用 execvp(),传入 cmd 和 args,还是使用 system,构建一个由 cmd + args 组成的字符串?

最佳答案

好吧,其他答案大部分都是正确的。

系统,虽然不仅是fork然后是exec,它不会exec你的进程,它运行默认的shell,将您的程序作为参数传递。

所以,除非你真的想要一个 shell(用于参数解析等),否则做这样的事情会更有效率:

int i = fork();
if ( i != 0 ) {
exec*(...); // whichever flavor fits the bill
} else {
wait(); // or something more sophisticated
}

关于c - 什么时候用system(),什么时候用execv*()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2289341/

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