• <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   管理


            婷婷久久久亚洲欧洲日产国码AV | 国产色综合久久无码有码| 国产2021久久精品| 久久综合狠狠综合久久97色| 久久人与动人物a级毛片| 国产∨亚洲V天堂无码久久久| 精品久久人人做人人爽综合 | 久久综合狠狠综合久久激情 | 狠狠色综合久久久久尤物| 亚洲国产精品综合久久一线 | 亚洲?V乱码久久精品蜜桃| 无码日韩人妻精品久久蜜桃| 久久精品成人免费看| 国产成人综合久久精品红| 国产一区二区三区久久| 无码任你躁久久久久久老妇App| 欧美黑人又粗又大久久久| 天天综合久久一二三区| 一本大道久久a久久精品综合| 欧美精品国产综合久久| 国产99久久久久久免费看| 狠狠88综合久久久久综合网| 亚洲国产成人久久综合区| 大美女久久久久久j久久| 久久66热人妻偷产精品9| 久久婷婷午色综合夜啪| 精品多毛少妇人妻AV免费久久| 久久精品国产亚洲av日韩| 国产美女亚洲精品久久久综合| 欧美一级久久久久久久大片| 国产精品激情综合久久 | 午夜精品久久影院蜜桃| 亚洲国产天堂久久综合网站| 久久精品国产亚洲77777| 久久AV无码精品人妻糸列| 久久成人小视频| 理论片午午伦夜理片久久| 久久亚洲国产成人影院网站| 伊人久久大香线蕉AV一区二区 | 精品人妻伦九区久久AAA片69| 日批日出水久久亚洲精品tv|