![C語言:popen函數(shù)的使用_第1頁](http://file4.renrendoc.com/view/4fa7d239f2c466aa5ade008ed25af2b6/4fa7d239f2c466aa5ade008ed25af2b61.gif)
![C語言:popen函數(shù)的使用_第2頁](http://file4.renrendoc.com/view/4fa7d239f2c466aa5ade008ed25af2b6/4fa7d239f2c466aa5ade008ed25af2b62.gif)
![C語言:popen函數(shù)的使用_第3頁](http://file4.renrendoc.com/view/4fa7d239f2c466aa5ade008ed25af2b6/4fa7d239f2c466aa5ade008ed25af2b63.gif)
下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
C語?:popen函數(shù)的使?C語?:popen函數(shù)的使??、利?system函數(shù)調(diào)?shell命令,只能獲取到shell命令的返回值,?不能獲取shell命令的輸出結果,那如果想獲取輸出結果怎么辦呢??popen函數(shù)可以實現(xiàn)。?、定義函數(shù):FILE*popen(constchar*command,constchar*type);函數(shù)說明:popen()會調(diào)?fork()產(chǎn)??進程,然后從?進程中調(diào)?/bin/sh-c來執(zhí)?參數(shù)command的指令。參數(shù)type可使?"r"代表讀取,"w"代表寫?。依照此type值,popen()會建?管道連到?進程的標準輸出設備或標準輸?設備,然后返回?個?件指針。隨后進程便可利?此?件指針來讀取?進程的輸出設備或是寫?到?進程的標準輸?設備中。此外,所有使??件指針(FILE*)操作的函數(shù)也都可以使?,除了fclose()以外。返回值:若成功則返回?件指針,否則返回NULL,錯誤原因存于errno中.三、實例測試1、popen.c#include"stdio.h"#include"stdlib.h"intpopen_system(constchar*cmd,char*pRetMsg,intmsg_len){printf("\n\n________%s%dcmd=%s\n",__func__,__LINE__,cmd);FILE*fp;char*p=NULL;intres=-1;if(cmd==NULL||pRetMsg==NULL||msg_len<0){printf("ParamError!\n");return-1;}if((fp=popen(cmd,"r"))==NULL){printf("PopenError!\n");return-2;}else{memset(pRetMsg,0,msg_len);//getlastestresultwhile(fgets(pRetMsg,msg_len,fp)!=NULL){printf("Msg:%s",pRetMsg);//printallinfo}if((res=pclose(fp))==-1){printf("closepopenerror!\n");return-3;}//pRetMsg[strlen(pRetMsg)-1]='\0';pRetMsg[strlen(pRetMsg)]='\0';return0;}}}voidpopen_read(constchar*cmd){printf("\n\n________%s%dcmd=%s\n",__func__,__LINE__,cmd);FILE*fp;charbuf[200]={0};if((fp=popen(cmd,"r"))==NULL){perror("Failtopopen\n");exit(1);}while(fgets(buf,200,fp)!=NULL){printf("%s",buf);}pclose(fp);}voidpopen_write(constchar*cmd){printf("\n\n________%s%dcmd=%s\n",__func__,__LINE__,cmd);FILE*fp;charbuf[200]={0};if((fp=popen(cmd,"w"))==NULL){perror("Failtopopen\n");exit(1);}fwrite("Readpipesuccessfully!",1,sizeof("Readpipesuccessfully!"),fp);pclose(fp);}intmain(){char*cmd="who";chara8Result[128]={0};intret=0;inti=0;memset(a8Result,0,strlen(a8Result));ret=popen_system(cmd,a8Result,sizeof(a8Result));printf("ret=%da8Result=%slength=%d\n",ret,a8Result,strlen(a8Result));popen_read("./r
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 對技術研發(fā)產(chǎn)品進行在次加工的合同范本(3篇)
- 2024-2025學年河南省青桐鳴大聯(lián)考高一上學期12月月考歷史試卷
- 2025年雙方共同簽署的離婚協(xié)議
- 2025年個人購置豪華花園房合同范文
- 2025年九臺市報社資源共享合作協(xié)議
- 2025年炊具掛盤項目立項申請報告模板
- 2025年策劃合作賬戶管理解除協(xié)議書范本
- 2025年配藥中心項目提案報告模稿
- 2025年供應商合作關系協(xié)議文本
- 2025年中國近距離運輸合同規(guī)定
- 120急救車輛管理規(guī)范與120駕駛員管理制度
- 白酒業(yè)務員考勤管理制度
- 2024年海南省??谑行∩鯏?shù)學試卷(含答案)
- 小班班本課程《吃飯這件小事》
- 危險化學品事故應急預案演練評估報告
- 部編人教版六年級道德與法治下冊全冊完整版課件
- 會議紀要督辦管理制度
- 2024云南中考數(shù)學二輪專題復習 題型五 二次函數(shù)性質(zhì)綜合題(課件)
- JB∕T 9006-2013 起重機 卷筒標準規(guī)范
- 家庭法律服務行業(yè)市場突圍建議書
- 高一數(shù)學同步優(yōu)品講練課件(人教A版2019必修第一冊)3.2 函數(shù)的基本性質(zhì)(課時3 函數(shù)的奇偶性)(課件)
評論
0/150
提交評論