兩個很有用的程序間通訊函式popen,pclose

2021-07-03 18:48:43 字數 878 閱讀 6849

兩個很有用的程序間通訊函式popen,pclose

今天起的比較晚,然後來了也不想複習,還是看書學習--寫**--寫部落格有意思,不敢說有多精通,至少每天都在學習新知識,不求立刻完全消化,但求每天有進步。

現在就看看這兩個函式,其實都是建立乙個管道到子程序,但是使用這兩個函式要比昨天使用pipe() 函式簡單的多。

#include

file *popen(const char *command, const char *type);

int pclose(file *stream);

函式原型參上。popen 函式有兩個引數,第乙個是執行的可執行程式,這個函式首先會呼叫fork( )然後呼叫exec( )函式執行這個可執行檔案。然後還有乙個引數,有兩個選項(r & w). r :將返回的檔案指標連線到可執行程式的標準輸出,w:將返回的檔案指標連線到可執行檔案的標準輸入。

#include#include#include#include#define pager "$"

#define maxline 255

int main(int argc,char **argv)

if((fpin = fopen(argv[1],"r")) == null)

if((fpout = popen(pager,"w")) == null)

while(fgets(line,maxline,fpin) != null)

}if(ferror(fpin))

if(pclose(fpout) == -1)

exit(0);

}

首先我們應當在本地建立乙個文字檔案隨便寫入一些東西,然後傳給這個程式,這個程式呼叫本身的more 分頁程式,將文字裡的東西分頁顯示在終端上。

php中陣列操作中兩個很有用的函式

今天發現php中有兩個陣列中很好用的操作的函式,經常被忽視了,乙個array intersect,另外乙個是array diff,首先來介紹下arry diff 1 array diff array diff 函式返回兩個陣列的差集陣列。該陣列包括了所有在被比較的陣列中,但是不在任何其他引數陣列中的...

使用mmap函式實現兩個程序間讀寫通訊

有乙個程序負責寫內容到mmap對映的一塊快取區中,另乙個程序負責將這些內容讀取出來。1 mmap r ipc.c原始碼 include include include include include include include int main int argc,char ar while 1 ...

使用FIFO來進行兩個程序間的通訊

使用命名管道的操作和使用普通的文字檔案類似,都是系統呼叫open函式去開啟建立好的管道,使用read,write函式操作,操作完成後用close函式關閉。從fifo中讀取資料的規則是 1,如果乙個程序為了從fifo中讀取資料而阻塞開啟fifo,n那麼稱該程序內的讀操作為設定了阻塞標誌的讀操作。2,如...