亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > Linux Shell > 正文

Linux中popen函數的作用小結

2020-07-27 18:48:27
字體:
來源:轉載
供稿:網友

簡單說一下popen()函數

函數定義

#include <stdio.h>FILE * popen(const char *command , const char *type );int pclose(FILE *stream);

函數說明

  popen()函數通過創建一個管道,調用fork()產生一個子進程,執行一個shell以運行命令來開啟一個進程。這個管道必須由pclose()函數關閉,而不是fclose()函數。pclose()函數關閉標準I/O流,等待命令執行結束,然后返回shell的終止狀態。如果shell不能被執行,則pclose()返回的終止狀態與shell已執行exit一樣。

  type參數只能是讀或者寫中的一種,得到的返回值(標準I/O流)也具有和type相應的只讀或只寫類型。如果type是"r"則文件指針連接到command的標準輸出;如果type是"w"則文件指針連接到command的標準輸入。

  command參數是一個指向以NULL結束的shell命令字符串的指針。這行命令將被傳到bin/sh并使用-c標志,shell將執行這個命令。

  popen()的返回值是個標準I/O流,必須由pclose來終止。前面提到這個流是單向的(只能用于讀或寫)。向這個流寫內容相當于寫入該命令的標準輸入,命令的標準輸出和調用popen()的進程相同;與之相反的,從流中讀數據相當于讀取命令的標準輸出,命令的標準輸入和調用popen()的進程相同。

返回值

  如果調用fork()或pipe()失敗,或者不能分配內存將返回NULL,否則返回標準I/O流。popen()沒有為內存分配失敗設置errno值。如果調用fork()或pipe()時出現錯誤,errno被設為相應的錯誤類型。如果type參數不合法,errno將返回EINVAL。

函數原型:

 #include “stdio.h”  FILE *popen( const char *command, const char* mode )    int pclose(FILE *stream_to_close);

參數說明:

  command: 是一個指向以 NULL 結束的 shell 命令字符串的指針。這行命令將被傳到 bin/sh 并使用 -c 標志,shell 將執行這個命令。

  mode: 只能是讀或者寫中的一種,得到的返回值(標準 I/O 流)也具有和 type 相應的只讀或只寫類型。如果 type 是 “r” 則文件指針連接到 command 的標準輸出;如果 type 是 “w” 則文件指針連接到 command 的標準輸入。

作用:

    popen函數允許一個程序將另外一個程序作為新進程來啟動,并可以傳遞數據或者通過它接受數據。

    其內部實現為調用 fork 產生一個子進程,執行一個 shell, 以運行命令來開啟一個進程,這個進程必須由 pclose() 函數關閉。

缺點:

    使用popen的不好影響是,針對每個popen調用,不僅要啟動一個被請求的程序,還要啟動一個shell,即每個popen調用將多啟動兩個進程。

 舉例:

#include<stdio.h>   #include<unistd.h>   #include<string.h>     int main()   {     FILE *fp=NULL;     FILE *fh=NULL;     char buff[128]={0};      memset(buff,0,sizeof(buff));    fp=popen("ls -l","r");//將命令ls-l 同過管道讀到fp    fh=fopen("shell.c","w+");// 創建一個可寫的文件    fread(buff,1,127,fp);//將fp的數據流讀到buff中    fwrite(buff,1,127,fh);//將buff的數據寫入fh指向的文件中      pclose(fp);    fclose(fh);      return 0;      } ~        

 運行結果:

[lol@localhost practice]$ lspopen popen.c shell.c[lol@localhost practice]$ cat shell.ctotal 12-rwxrwxr-x. 1 lol lol 5478 May 24 15:39 popen-rw-rw-r--. 1 lol lol 473 May 24 15:39 popen.c-rw-rw-r--. 1 lol lol  [lol@localhost practice]$ vim popen.c[lol@localhost practice]$ 

總結

以上所述是小編給大家介紹的Linux中popen函數的作用小結,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲国产日韩欧美在线动漫| 青青青国产精品一区二区| 日韩av手机在线看| 国产亚洲欧洲高清一区| 国产成人亚洲综合91精品| 日韩中文字幕国产精品| 中文字幕在线看视频国产欧美在线看完整| 中文字幕在线国产精品| 日韩在线激情视频| 久久久中文字幕| 国产精品视频白浆免费视频| 欧美亚洲成人网| 欧美激情精品久久久久久| 成人黄色免费看| 欧美日韩一区二区免费在线观看| 日韩电影免费在线观看| 日韩精品视频免费专区在线播放| 97视频网站入口| 国产视频欧美视频| 成人精品一区二区三区| 一夜七次郎国产精品亚洲| 亚洲精品影视在线观看| 在线日韩精品视频| 第一福利永久视频精品| 亚洲tv在线观看| 久久精品国产亚洲精品2020| 中文字幕亚洲一区二区三区| 精品久久久久久电影| 久久久久久高潮国产精品视| 亚洲国产一区二区三区四区| 狠狠久久亚洲欧美专区| 91色精品视频在线| 国产日韩欧美中文| 在线观看亚洲视频| 成人中心免费视频| 久久五月天色综合| 中文字幕欧美精品日韩中文字幕| 狠狠躁夜夜躁人人躁婷婷91| 亚洲免费高清视频| 狠狠综合久久av一区二区小说| 国产一区二区三区在线免费观看| 亚洲一区二区在线播放| 国产精品视频色| 亚洲成人网久久久| 日韩在线视频观看正片免费网站| 91精品久久久久| 日韩经典中文字幕在线观看| 欧美大胆a视频| 国产精品国内视频| 久久伊人精品天天| 欧美国产日韩一区二区| 国产精品久久久久久久久男| 亚洲在线免费视频| 久久6精品影院| 成人妇女淫片aaaa视频| 伊人亚洲福利一区二区三区| 日韩黄色高清视频| 久久久久女教师免费一区| 欧美电影免费观看高清完整| 国产一区香蕉久久| 欧美日韩ab片| 精品久久国产精品| 国产精品美女免费视频| 亚洲国产精品va在线看黑人动漫| 高清一区二区三区四区五区| 亚洲免费精彩视频| 2019亚洲日韩新视频| 97高清免费视频| 久久综合伊人77777蜜臀| 欧美性猛交xxxx| 亚洲福利视频在线| 国产一区二区三区网站| 亚洲老板91色精品久久| 亚洲伊人一本大道中文字幕| 欧美成人激情图片网| 亚洲香蕉伊综合在人在线视看| 国产欧美一区二区三区久久| 久久影视电视剧免费网站| 热99久久精品| 主播福利视频一区| 黄色成人av网| 精品亚洲一区二区三区在线观看| 亚洲男子天堂网| 91免费的视频在线播放| 亚洲女人被黑人巨大进入| 色青青草原桃花久久综合| 亚洲精品视频在线播放| 亚洲欧洲日韩国产| 成人福利免费观看| 欧美一级免费看| 国产精品久久久久久久久久久新郎| 2025国产精品视频| 色综合色综合网色综合| 国产一区二区丝袜| 国产精品男人爽免费视频1| 韩剧1988在线观看免费完整版| 欧美天天综合色影久久精品| 久久91超碰青草是什么| 欧美激情综合亚洲一二区| 国产一区二区三区精品久久久| 国产综合视频在线观看| 亚洲电影免费观看| 精品久久久免费| 久久精品国产96久久久香蕉| 欧美国产亚洲精品久久久8v| 日韩av网址在线观看| 亚洲国产一区二区三区四区| 日韩精品亚洲精品| 亚洲国产中文字幕久久网| 亚洲精品小视频在线观看| 亚洲毛茸茸少妇高潮呻吟| 91中文在线视频| 亚洲欧美一区二区三区情侣bbw| 欧美多人爱爱视频网站| 欧美日韩中文字幕在线| 亚洲网站在线播放| 欧美黄网免费在线观看| 欧美xxxx做受欧美| 久久久久国色av免费观看性色| 啊v视频在线一区二区三区| 26uuu亚洲伊人春色| 日韩女在线观看| 国产精品亚洲第一区| 精品欧美激情精品一区| 日韩精品免费视频| 欧美美最猛性xxxxxx| 国产精品成人aaaaa网站| 精品中文字幕久久久久久| 欧美一性一乱一交一视频| 国产精品大片wwwwww| 一区二区三区 在线观看视| 久久免费精品视频| 色哟哟入口国产精品| 在线看日韩欧美| 中文字幕国产精品| 国产精品第七影院| 98视频在线噜噜噜国产| 欧美日韩国产综合新一区| 国产一区二区三区视频| 亚洲一区二区久久久久久久| 国产精品视频yy9099| 理论片在线不卡免费观看| 亚洲缚视频在线观看| 成人在线国产精品| 在线精品国产欧美| 国产精品小说在线| 国产精品综合久久久| 搡老女人一区二区三区视频tv| 日韩极品精品视频免费观看| 色小说视频一区| 亚洲福利影片在线| 疯狂做受xxxx欧美肥白少妇| 亚洲电影在线观看| 精品亚洲夜色av98在线观看| 久久久久久欧美| 亚洲理论在线a中文字幕| 欧美午夜片在线免费观看| 国产精品国语对白| 日韩激情第一页| 亚洲欧洲国产伦综合| 久久精品视频网站| 国产女人精品视频| 久久久中文字幕| 浅井舞香一区二区|