popen 函式相當於做了以下幾件事:
1、建立乙個無名管道檔案
2、 fork()
3、在子程序裡, exec command
4、 在子程序裡,
若 type == 「r」 , 相當於進行:
int fd_new = fopen("若 type == 「w」 , 相當於進行:pipe_name
",o_wronly);
dup2(0,fd_new);
int fd_new = fopen("5、返回值 為 對管道檔案 type型別操作的 檔案指標pipe_name
",o_rdonly);
dup2(0,fd_new);
p1中:
1 fp_in = popen(cmd, "popen的返回值 fp_in 檔案指標 是管道檔案的讀檔案指標r") ;
p2中:
popen(,「r」)把p2中的標準輸出重定向到 管道檔案 ,printf 相當於向管道檔案 fputs
1 printf("具體**:%s\n
", src );
p1中:
1 fp_out = popen(argv[1], "popen 的返回值 為 管道檔案的 寫檔案指標w") ;
p2中:
popen(,「w」)把p2中的標準輸入重定向到 管道檔案 ,gets 相當於從管道檔案 fgets
1 gets(src)具體**:
父子程序間訊號通訊
司機售票員問題 建立子程序代表售票員,父程序代表司機,同步過程如下 售票員捕捉sigint 代表開車 發sigusr1給司機,司機列印 let s gogogo 售票員捕捉sigiquit 代表停車 發sigusr2給司機,司機列印 stop the bus 司機捕捉sigtstp 代表車到站 發s...
QT 父子程序間通訊
1.父程序設計 1.1首先建立程序類 ifndef myprocess h define myprocess h include class myprocess public qprocess endif myprocess h include myprocess.h myprocess mypro...
09 程序間通訊 無名管道(父子程序間)
toc 來自 管道是單向的 先進先出的,它把乙個程序的輸出和另乙個程序的輸入連線在一起。乙個程序 寫程序 在管道的尾部寫入資料,另乙個程序 讀程序 從管道的頭部讀出資料。管道包括無名管道和命名管道兩種,前者用於父程序和子程序間的通訊,後者可用於執行於同一系統中的任意兩個程序間的通訊。管道通訊是單向的...