管道通信機(jī)制和消息緩沖機(jī)制

管道通信機(jī)制和消息緩沖機(jī)制

ID:5860172

大小:214.50 KB

頁(yè)數(shù):14頁(yè)

時(shí)間:2017-12-26

管道通信機(jī)制和消息緩沖機(jī)制_第1頁(yè)
管道通信機(jī)制和消息緩沖機(jī)制_第2頁(yè)
管道通信機(jī)制和消息緩沖機(jī)制_第3頁(yè)
管道通信機(jī)制和消息緩沖機(jī)制_第4頁(yè)
管道通信機(jī)制和消息緩沖機(jī)制_第5頁(yè)
資源描述:

《管道通信機(jī)制和消息緩沖機(jī)制》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫(kù)。

1、實(shí)驗(yàn)題目管道通信機(jī)制和消息緩沖機(jī)制小組合作否姓名班級(jí)學(xué)號(hào)一、實(shí)驗(yàn)?zāi)康?、理解和掌握管道通信機(jī)制中使用的系統(tǒng)調(diào)用命令的格式和如何利用系統(tǒng)調(diào)用命令進(jìn)行進(jìn)程通信編程。2、理解和掌握消息緩沖機(jī)制中使用的系統(tǒng)調(diào)用命令的格式和如何利用系統(tǒng)調(diào)用命令進(jìn)行進(jìn)程通信編程。二.實(shí)驗(yàn)環(huán)境1、VMwareWorkstation工作平臺(tái)2、Linux系統(tǒng)三、實(shí)驗(yàn)內(nèi)容與步驟一、管道通信機(jī)制1、無(wú)名管道的通信(1)創(chuàng)建無(wú)名管道的格式#include#include#includeintpipe(intfiledes[2]);正確返回:0;錯(cuò)誤返回:-1。(2)無(wú)

2、名管道pipe()的使用16.1、使用無(wú)名管道pipe()進(jìn)行父子進(jìn)程之間的通信源程序代碼如下:#include#include#includeintpipe(intfiledes[2]);charparent[]="Amessagetopipe'communication.";main(){intpid,chan1[2];charbuf[100];pipe(chan1);pid=fork();if(pid<0){printf("tocreatechilderror");exit(1);}if(pid>0){close(c

3、han1[0]);printf("parentprocesssendsamessagetochild.");write(chan1[1],parent,sizeof(parent));close(chan1[1]);printf("parentprocesswaitsthechildtoterminate.");wait(0);printf("parentprocessterminate.");}else{close(chan1[1]);read(chan1[0],buf,100);printf("Themessagereadbychildprocessfromparentis:%

4、s.",buf);close(0);printf("childprocessterminate");}}實(shí)驗(yàn)運(yùn)行結(jié)果如圖所示:2、以命令行為參數(shù)的管道通信(1)命令格式#include#include#includeFiLepopen(constcharcmdstring,constchartype);(2)打開(kāi)一個(gè)以命令行為參數(shù)的管道文件,完成進(jìn)程之間的通信16.2、以命令行為參數(shù)的管道文件的示例假設(shè)有一個(gè)可執(zhí)行程序chcase,從標(biāo)準(zhǔn)輸入設(shè)備讀字符,將小寫(xiě)字母轉(zhuǎn)換成大寫(xiě)字母并進(jìn)行輸出。主程序使用popen創(chuàng)建管道,實(shí)現(xiàn)將

5、某文本文件中的字母轉(zhuǎn)換成大寫(xiě)字母,期中的文本文件名作為參數(shù)傳進(jìn)來(lái)。源程序代碼如下:#include#include#defineMAXLINE100intmain(intargc,char*argv[]){charline[MAXLINE];FILE*fpin,*fpout;if(argc!=2){fprintf(stderr,"usage:a.out");exit(1);}if((fpin=fopen(argv[1],"r"))==NULL){fprintf(stderr,"can'topen%s",argv[1]);ex

6、it(1);}if((fpout=popen("/root/LiFang/chcase.exe","w"))==NULL){fprintf(stderr,"popenerror");exit(1);}while((fgets(line,MAXLINE,fpin))!=NULL){if(fputs(line,fpout)==EOF){fprintf(stderr,"fputserrortopipe.");exit(1);}}if(ferror(fpin)){fprintf(stderr,"fgetserror.");exit(1);}if(pclose(fpout)==-1){fpr

7、intf(stderr,"pcloseerror.");exit(1);}exit(0);}實(shí)驗(yàn)運(yùn)行結(jié)果如下圖所示:1、有名管道的通信(1)創(chuàng)建一個(gè)有名管道的系統(tǒng)調(diào)用mknod()#include#include#include#includeintmknod(constchar*pathname,mode

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。