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

            記錄每日點(diǎn)滴,不枉人生一世

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

            公告

            常用鏈接

            留言簿(24)

            我參與的團(tuán)隊(duì)

            最新隨筆

            搜索

            •  

            積分與排名

            • 積分 - 455263
            • 排名 - 48

            最新隨筆

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

             

            #include <stdio.h>

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

            int pclose(FILE *stream);

            描述

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

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

            popen() 函數(shù) 的 返回值 是 一個(gè) 普通的 標(biāo)準(zhǔn)I/O流, 它只能用 pclose() 函數(shù) 來關(guān)閉, 而不是 fclose(). 函數(shù). 向 這個(gè)流 的 寫入 被轉(zhuǎn)化為 對(duì) command 命令的 標(biāo)準(zhǔn)輸入; 而 command 命令的 標(biāo)準(zhǔn)輸出 則是和 調(diào)用 popen(), 函數(shù) 的 進(jìn)程 相同,除非 這個(gè) 被command命令 自己 改變. 相反的, 讀取 一個(gè) “被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é)束 并返回 一個(gè) 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 閱讀(455) 評(píng)論(0)  編輯 收藏 引用

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


            久久91精品国产91久久麻豆| 狠狠色综合网站久久久久久久高清| 中文字幕久久久久人妻| 亚洲国产成人久久综合一区77| 久久久久国色AV免费观看| 久久综合丁香激情久久| 欧美精品一本久久男人的天堂 | 性做久久久久久久久浪潮| 午夜精品久久久久9999高清| 亚洲精品综合久久| 亚洲午夜无码久久久久| 国产精品99精品久久免费| 久久99国产精品一区二区| 色综合久久精品中文字幕首页| 亚洲狠狠久久综合一区77777| 99久久亚洲综合精品网站| 久久强奷乱码老熟女网站| 亚洲人成无码网站久久99热国产| 久久精品久久久久观看99水蜜桃 | 2022年国产精品久久久久| 久久精品国产亚洲网站| 97久久精品人人做人人爽| 蜜桃麻豆www久久国产精品| 亚洲AV乱码久久精品蜜桃| 91精品国产91久久综合| 久久精品国产99久久久香蕉| 亚洲午夜久久久| 久久久精品一区二区三区| 久久午夜免费视频| 久久中文娱乐网| 热re99久久精品国99热| 久久艹国产| 成人综合伊人五月婷久久| 一级做a爰片久久毛片免费陪| 久久精品人人槡人妻人人玩AV| 久久国产视屏| 国产91色综合久久免费分享| 久久人做人爽一区二区三区| 国产成人精品久久亚洲| 亚洲精品美女久久久久99| 中文字幕无码av激情不卡久久|