popen和system有什么区别?
这两个都是属于C库里面的函数,作用也差不多,可以在程序中执行shell命令。
比如在system中写上clear命令,执行程序的时候就会清空屏幕;在system中写上ifconfig,运行的时候就能看到网卡信息。
所以 system 的作用,就是单纯的执行一条命令。
如果想在程序中获得命令执行的结果,就可以借助popen。
popen包含两个参数,第一个是要执行的命令,第二个表示读或者写,返回标准的IO流地址。
如果要读取命令的结果,使用fread就行。
仅仅从使用上来分析他俩的区别,system只能执行命令,popen不仅可以执行,还能获得执行的结果。
他们的实现也不太相同,popen本身不会阻塞,system会通过waitpid来阻塞;popen返回值简单,system返回值更复杂;而且system在执行指令的时候,还会忽略和阻塞一些信号。
所以,关于这两个函数,你觉得应该如何选择?
审核编辑:刘清
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
Shell
+关注
关注
1文章
376浏览量
25537
原文标题:popen和system的区别!
文章出处:【微信号:学益得智能硬件,微信公众号:学益得智能硬件】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
热点推荐
STM32CubeIDE和STM32的System Workbench有什么区别?
STM32CubeIDE 和 STM32 的 System Workbench 有什么区别。
发表于 01-09 08:32
chiplet和soc有什么区别?
chiplet和soc有什么区别? 随着技术的不断发展,芯片设计也在快速演变。而在芯片设计理念中,目前最常见的概念是"system-on-a-chip (SoC)"和"chiplet"。 对于业界
popen和system有什么区别?
评论