管道 popen與pclose(二)

2021-10-10 17:09:07 字數 769 閱讀 4744

#includefile* popen(const char *command, const char *type);

/* 建立管道並啟動command的程序

type:"r" 將呼叫程序讀進command的標準輸出

type "w" 將呼叫程序寫到command的標準輸入

注意:呼叫popen不對標準錯誤輸出做任何處理,只有標準輸出才被重定向到由他建立的管道

command產生的錯誤提示,由他自己輸出,非popen

*/int pclose(file * stream);

#ifndef myhead_h_

#define myhead_h_

#include#include#include#include#include#include#include#include#include#define maxline 4096

#endif

#include"myhead.h"

int main()

snprintf(command, sizeof(command), "%s", buff);

fp = popen(command, "r");

while(null != (fgets(buff, maxline, fp)))

pclose(fp);

return 0;

}

編譯後執行檔案,輸入shell命令即可例如 ls

基於管道的popen和pclose函式

標準i o函式庫提供了popen函式,它啟動另外乙個程序去執行乙個shell命令列。這裡我們稱呼叫popen的程序為父程序,由popen啟動的程序稱為子程序。popen函式還建立乙個管道用於父子程序間通訊。子程序要麼從管道讀資訊,要麼向管道寫資訊,至於是讀還是寫取決於父程序呼叫popen時傳遞的引數...

基於管道的popen和pclose函式

標準i o函式庫提供了popen函式,它啟動另外乙個程序去執行乙個shell命令列。這裡我們稱呼叫popen的程序為父程序,由popen啟動的程序稱為子程序。popen函式還建立乙個管道用於父子程序間通訊。子程序要麼從管道讀資訊,要麼向管道寫資訊,至於是讀還是寫取決於父程序呼叫popen時傳遞的引數...

基於管道的popen和pclose函式

標準i o函式庫提供了popen函式,它啟動另外乙個程序去執行乙個shell命令列。這裡我們稱呼叫popen的程序為父程序,由popen啟動的程序稱為子程序。popen函式還建立乙個管道用於父子程序間通訊。子程序要麼從管道讀資訊,要麼向管道寫資訊,至於是讀還是寫取決於父程序呼叫popen時傳遞的引數...