close

#include <stdio.h>

 

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

int pclose(FILE *stream);

描述

popen() 函數使用建立管道的方式, 並使用 shell. 

因為管道是被定義成單向的, 所以 type 參數只能定義為 read 或 write,

不能是read/write 兩者同時定義, result stream也只可read或write.

command 參數是一個string pointer, 指向的是一個以null 為結尾的字串,這個字串包含一個shell命令.

這個命令被送到 /bin/sh-c 參數執行,即由shell來執行.


type 參數也是一個指向以null為結尾的string pointer,

這個字串必須是'r'或者'w'來定義是讀還是寫.

popen() 函數的回傳值是一個普通的標準I/O stream,

它只能用 pclose() 函數來關閉,而不是 fclose().函數.

 

像這個流的寫入被轉化為對command命令的標準輸入;而command命令的標準輸出則是和調用 popen(),函數的進程相同,

除非這個被command命令自己改變.

相反的,讀取一個“被popen了的”流,就相當於讀取command命令的標準輸出,

而command的標準輸入則是和調用 popen,函數的進程相同.

 

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

pclose 函數等待相關的進程結束並返回一個command命令的退出狀態,就像 wait4 函數一樣

 

http://eeepage.info/linux-c-popen-function/

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 pabeni 的頭像
    pabeni

    pabeni的部落格

    pabeni 發表在 痞客邦 留言(0) 人氣()