在Linux中使用popen的例子

2021-06-16 01:57:18 字數 1184 閱讀 1447

在linux下進行編寫程式的時候,如果需要執行一段指令碼,並且需要獲取指令碼執行的結果,按麼最好使用popen。下面就舉乙個例子:

c**檔案為: 3.c,內容如下:

#include   

#include 

#include   

#include   

#include   

#include 

typedef struct tag_result

}result,*lpresult;

int   writefile(const

char   *filename,const

char   *pfile,const

int   nlen)   

if(fwrite((void   *)pfile,1,nlen,stream)!=nlen)   

fclose(stream);   

return   0;   

}   

int   main()   

;   

char dddd[10]=;

char cccc[100]=;

pstream=popen("a","r");   

if(pstream)

else

return 1;    

}   

要執行的指令碼名稱為a,指令碼內容為:

#!/bin/sh

#filename: a

fileinfo=11

rm fileinfo #>/dev/null 2>

echo -n $fileinfo";" >> fileinfo

echo -n $fileinfo";" >> fileinfo

ls -l $fileinfo | awk '' >> fileinfo

cat fileinfo

通過:g++ -o 11 3.c  編譯c**生成可執行檔案為:11,直接執行11,就可以檢視到結果.

1.問題1: 如果指令碼a在第3行的時候,直接就通過exit 1返回了,那麼通過popen開啟執行這個指令碼會出現什麼結果呢?

如果指令碼直接返回,相當於指令碼沒有向popen開啟的檔案中寫入任何資料,也就是說popen相當於開啟了乙個空檔案.

2.問題2: popen開啟的檔案中獲取的是什麼資料?

獲取的就是指令碼輸出到標準輸出的資料。

linux的popen函式使用

有了popen,使得linux開發的程式相當於可以輕鬆呼叫這台機器上的任何程式,因為popen執行命令後,可以返回執行輸出結果供程式使用 使用範例 include include strlen include include includeusing namespace std execute sh...

在Linux中使用執行緒

我並不假定你會使用linux的執行緒,所以在這裡就簡單的介紹一下。如果你之前有過多執行緒方面的程式設計經驗,完全可以忽略本文的內容,因為它非常的初級。首先說明一下,在linux編寫多執行緒程式需要包含標頭檔案pthread.h。也就是說你在任何採用多執行緒設計的程式中都會看到類似這樣的 1 incl...

在windows的IDE中使用linux命令列

經常敲命令列,所以很不習慣windows的cmd和powershell。尤其是用過mac之後,發現完全回不來了。在碼 的時候,尤其是當需要乙個修改乙個環境變數,多麼希望能用export之類的命令。本篇文章的目的就是要幫你在ide的terminal裡面配置linux命令。最終效果展示 jetbrain...