当前位置:  开发笔记 > 编程语言 > 正文

使用fork/execvp和系统调用之间的区别

如何解决《使用fork/execvp和系统调用之间的区别》经验,为你挑选了3个好方法。

使用system()执行二进制文件和使用fork/execvp的组合有什么区别.

是否有任何安全性/可移植性/性能差异.



1> flolo..:

系统还使用fork/ exec...组合.如果你fork/ exec你自己,你可以到你的运行过程中执行并行,同时system阻止(包括wait).也system执行命令不直接,但通过shell(这会产生setuid位问题)和system阻止/忽略某些信号(SIGINT,SIGCHILD,SIGQUIT).



2> unwind..:

是的,system()通过shell exec()运行命令,同时直接运行命令.当然,引入shell会出现bug和漏洞.

编辑:当然,手册页提供了更多细节.



3> qrdl..:

system()fork()/ exec()shell,然后shell将fork()/ exec()您要启动的程序.

所以system()重量是fork()/的两倍exec()

推荐阅读
帆侮听我悄悄说星星
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有