• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            doing5552

            記錄每日點滴,不枉人生一世

              C++博客 :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
              73 Posts :: 0 Stories :: 94 Comments :: 0 Trackbacks

            公告

            常用鏈接

            留言簿(24)

            我參與的團(tuán)隊

            最新隨筆

            搜索

            •  

            積分與排名

            • 積分 - 455713
            • 排名 - 49

            最新隨筆

            最新評論

            閱讀排行榜

            評論排行榜

             

            #include <stdio.h>

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

            int pclose(FILE *stream);

            描述

            popen() 函數(shù) 用 創(chuàng)建管道 的 方式 啟動 一個 進(jìn)程, 并調(diào)用 shell. 因為 管道 是被定義成 單向的, 所以 type 參數(shù) 只能 定義成 只讀 或者 只寫, 不能是 兩者同時, 結(jié)果流 也相應(yīng)的 是 只讀 或者 只寫.

            command 參數(shù) 是 一個 字符串指針, 指向的 是 一個 以 null 結(jié)束符 結(jié)尾的字符串, 這個 字符串 包含 一個 shell 命令. 這個命令 被送到 /bin/sh-c 參數(shù) 執(zhí)行, 即由 shell 來執(zhí)行. type 參數(shù) 也是 一個 指向 以 null 結(jié)束符 結(jié)尾的 字符串的指針, 這個字符串 必須是 'r' 或者 'w’ 來指明 是 讀還是寫.

            popen() 函數(shù) 的 返回值 是 一個 普通的 標(biāo)準(zhǔn)I/O流, 它只能用 pclose() 函數(shù) 來關(guān)閉, 而不是 fclose(). 函數(shù). 向 這個流 的 寫入 被轉(zhuǎn)化為 對 command 命令的 標(biāo)準(zhǔn)輸入; 而 command 命令的 標(biāo)準(zhǔn)輸出 則是和 調(diào)用 popen(), 函數(shù) 的 進(jìn)程 相同,除非 這個 被command命令 自己 改變. 相反的, 讀取 一個 “被popen了的” 流, 就相當(dāng)于 讀取 command 命令的 標(biāo)準(zhǔn)輸出, 而 command 的 標(biāo)準(zhǔn)輸入 則是和 調(diào)用 popen, 函數(shù)的 進(jìn)程 相同.

            注意, popen 函數(shù)的 輸出流 默認(rèn)是 被全緩沖的.

            pclose 函數(shù) 等待 相關(guān)的進(jìn)程 結(jié)束 并返回 一個 command 命令的 退出狀態(tài), 就像 wait4 函數(shù) 一樣

            示例:
            #include <stdio.h>

            int main(int argc, char *argv[])
            {
                     char buf[128];
                     FILE *pp;

                     if( (pp = popen("ls -l", "r")) == NULL )
                     {
                             printf("popen() error!\n");
                             exit(1);
                     }

                     while(fgets(buf, sizeof buf, pp))
                     {
                             printf("%s", buf);
                     }
                     pclose(pp);
                     return 0;
            }

            posted on 2010-07-11 16:40 doing5552 閱讀(461) 評論(0)  編輯 收藏 引用

            只有注冊用戶登錄后才能發(fā)表評論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


            中文字幕久久欲求不满| 国产亚洲色婷婷久久99精品| 国产精品日韩深夜福利久久| 尹人香蕉久久99天天拍| 亚洲成色WWW久久网站| 91久久婷婷国产综合精品青草| 久久99精品久久久久久秒播| 亚洲第一极品精品无码久久| 久久精品国产欧美日韩| 东京热TOKYO综合久久精品| 久久久久人妻精品一区三寸蜜桃| 亚洲欧美伊人久久综合一区二区| 亚洲欧美日韩精品久久| 国产激情久久久久久熟女老人| 99久久精品免费观看国产| 久久亚洲私人国产精品| 久久婷婷色香五月综合激情| 国产一区二区精品久久岳| 久久久亚洲欧洲日产国码二区| 色8激情欧美成人久久综合电| 99久久精品免费| 99久久免费国产精精品| 久久精品国产亚洲av麻豆小说| 18禁黄久久久AAA片| 香蕉久久永久视频| 亚洲伊人久久成综合人影院 | 亚洲精品成人网久久久久久| 99久久99这里只有免费费精品| 久久久久国产精品人妻| 久久国产精品无| 久久99久久99精品免视看动漫 | 国产91色综合久久免费| 久久久亚洲欧洲日产国码aⅴ| 亚洲精品美女久久777777| 伊人久久精品无码av一区| 国内精品久久久久影院薰衣草 | 久久这里只有精品首页| 97精品伊人久久久大香线蕉| 久久久亚洲裙底偷窥综合| 亚洲国产另类久久久精品| 精品久久久久久成人AV|