popen()

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

popen() 函數 用創建管道的方式啓動一個進程,並調用 shell.因爲管道是被定義成單向的, 所以 type 參數只能定義成只讀或者只寫, 不能是兩者同時, 結果流也相應的是隻讀或者只寫.

command 參數是一個字符串指針, 指向的是 一個以 null 結束符結尾的字符串, 這個字符串包含一個 shell 命令. 這個命令被送到 /bin/sh-c 參數 執行, 即由 shell 來執行. type 參數 也是一個 指向以 null 結束符結尾的字符串的指針, 這個字符串必須是'r'或者'w’ 來指明是讀還是寫.

popen() 函數的返回值是一個普通的標準I/O流,它只能用 pclose() 函數來關閉, 而不是 fclose(). 函數. 向這個流的寫入被轉化爲對command命令的標準輸入; 而command 命令的標準輸出則是和調用 popen(), 函數的進程相同,除非這 被command命令自己改變. 相反的, 讀取 一個“被popen了的” 流, 就相當於讀取 command 命令的標準輸出, 而 command 的 標準輸入則是和調用 popen, 函數的進程相同.

注意, popen 函數的輸出流默認是被全緩衝的

經驗,popen後,就可以用fgetc,fgets,fread進行操作。

發佈了18 篇原創文章 · 獲贊 0 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章