popen和system有什么區別?
這兩個都是屬于C庫里面的函數,作用也差不多,可以在程序中執行shell命令。
比如在system中寫上clear命令,執行程序的時候就會清空屏幕;在system中寫上ifconfig,運行的時候就能看到網卡信息。
所以 system 的作用,就是單純的執行一條命令。
如果想在程序中獲得命令執行的結果,就可以借助popen。
popen包含兩個參數,第一個是要執行的命令,第二個表示讀或者寫,返回標準的IO流地址。
如果要讀取命令的結果,使用fread就行。
僅僅從使用上來分析他倆的區別,system只能執行命令,popen不僅可以執行,還能獲得執行的結果。
他們的實現也不太相同,popen本身不會阻塞,system會通過waitpid來阻塞;popen返回值簡單,system返回值更復雜;而且system在執行指令的時候,還會忽略和阻塞一些信號。
所以,關于這兩個函數,你覺得應該如何選擇?
審核編輯:劉清
-
Shell
+關注
關注
1文章
371瀏覽量
23811
原文標題:popen和system的區別!
文章出處:【微信號:學益得智能硬件,微信公眾號:學益得智能硬件】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論