嵌入式linux调用使用系统
我在 Linux 嵌入式系统上使用 C 语言的系统(“命令”)调用时遇到问题。对应用程序的调用在命令行上工作正常,但是当使用系统命令在编译的 cgi 脚本中调用时,速度非常慢。有什么帮助吗?
I'm having a problem using system("command") call in C on an embedded system in linux. The call to the app works fine on the command line but when called in a compiled cgi script using the system command it is painfully slow. Any help appreciated?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
使用
system()
调用 shell 来处理您提供的参数。根据我的经验,当只需要运行外部命令时,使用 shell 很少有用。 shell 增加了开销,这可能是拖慢你速度的原因。如果您正在做的事情并不真正需要 shell,那么请尝试使用
fork()
来创建一个子进程,然后使用而不是
运行您需要的可执行文件。system()
exec()Using
system()
invokes a shell to process the arguments you provide. In my experience, it's rarely useful to have the shell involved when the need is simply to run an external command. The shell adds overhead, and that may be what is slowing you down.If what you're doing doesn't really require the shell, then instead of
system()
try usingfork()
to create a child process, followed byexec()
to run the executable you need.