popen和system有什么區(qū)別?
這兩個都是屬于C庫里面的函數(shù),作用也差不多,可以在程序中執(zhí)行shell命令。
比如在system中寫上clear命令,執(zhí)行程序的時候就會清空屏幕;在system中寫上ifconfig,運行的時候就能看到網(wǎng)卡信息。
所以 system 的作用,就是單純的執(zhí)行一條命令。
如果想在程序中獲得命令執(zhí)行的結(jié)果,就可以借助popen。
popen包含兩個參數(shù),第一個是要執(zhí)行的命令,第二個表示讀或者寫,返回標(biāo)準(zhǔn)的IO流地址。
如果要讀取命令的結(jié)果,使用fread就行。
僅僅從使用上來分析他倆的區(qū)別,system只能執(zhí)行命令,popen不僅可以執(zhí)行,還能獲得執(zhí)行的結(jié)果。
他們的實現(xiàn)也不太相同,popen本身不會阻塞,system會通過waitpid來阻塞;popen返回值簡單,system返回值更復(fù)雜;而且system在執(zhí)行指令的時候,還會忽略和阻塞一些信號。
所以,關(guān)于這兩個函數(shù),你覺得應(yīng)該如何選擇?
審核編輯:劉清
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
原文標(biāo)題:popen和system的區(qū)別!
文章出處:【微信號:學(xué)益得智能硬件,微信公眾號:學(xué)益得智能硬件】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
相關(guān)推薦
STM32CubeIDE 和 STM32 的 System Workbench 有什么區(qū)別。
發(fā)表于 01-09 08:32
現(xiàn)在的有線連接一般都是利用HDMI和VGA這兩種接口,但HDMI和VGA接口到底有什么區(qū)別呢?
發(fā)表于 01-24 13:58
?3.8w次閱讀
RTOS和TSOS有什么區(qū)別?
發(fā)表于 03-12 11:22
?4397次閱讀
晶體管與繼電器輸出的PLC有什么區(qū)別?
發(fā)表于 12-24 21:57
?2384次閱讀
榮耀50和p50有什么區(qū)別?
發(fā)表于 08-26 17:54
?1.3w次閱讀
單片機和PLC有什么區(qū)別?
發(fā)表于 11-13 19:21
?11次下載
單片機和PLC有什么區(qū)別?
發(fā)表于 11-23 16:21
?79次下載
Vivado Schematic中的實線和虛線有什么區(qū)別?
發(fā)表于 06-06 11:13
?969次閱讀
Vivado Schematic中的實線和虛線有什么區(qū)別?
發(fā)表于 06-16 16:53
?1001次閱讀
DML和EML有什么區(qū)別?該如何選擇?本文將回答這些問題。
發(fā)表于 06-30 10:43
?2091次閱讀
chiplet和soc有什么區(qū)別? 隨著技術(shù)的不斷發(fā)展,芯片設(shè)計也在快速演變。而在芯片設(shè)計理念中,目前最常見的概念是"system-on-a-chip (SoC)"和"chiplet"。 對于業(yè)界
發(fā)表于 08-25 14:44
?2187次閱讀
FPC與傳統(tǒng)PCB到底有什么區(qū)別
發(fā)表于 03-01 15:37
?4次下載
pcb軟板和硬板有什么區(qū)別
發(fā)表于 12-19 10:01
?1479次閱讀
hdi板與普通pcb有什么區(qū)別
發(fā)表于 12-28 10:26
?2481次閱讀
線路板的層和階有什么區(qū)別?
發(fā)表于 02-23 17:27
?521次閱讀
評論