亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

popen函數的用法及注意事項

發布時間:2020-07-08 02:10:49 來源:網絡 閱讀:2256 作者:小楊楊雪松 欄目:編程語言

標準I/O庫提供了兩個函數popenpclose這兩個函數,它們的功能是創建一個連接到另一個進程的管道,然后讀其輸出或向其輸入端發送數據。先fork一個子進程,關閉未使用的管道端。

popen() 函數 用 創建管道 的 方式啟動一個 進程, 并調用 shell 因為 管道是被定義成單向的, 所以 type 參數 只能定義成 只讀或者 只寫, 不能是 兩者同時, 結果流也相應的 是只讀 或者 只寫

函數popen的原型:

   FILE* POPEN(const char* cmdstring,const char* type)

     若成功,返回文件指針,若出錯,返回NULL

函數popen先執行fork,然后調用exec執行cmdstring,并且返回一個文件指針,如果type是“r,則文件指針連接到cmdstring的標準輸出,如果type是“w,則文件指針連接到cmdstring的標準輸入。

下面是一個測試用例,簡單的用下這個函數:

  #include <stdio.h>

   #include <stdlib.h>                                       

   #include <unistd.h>

   #include <string.h>

   int main()

   {

       FILE *stream;

       FILE *wstream;

      

       char buf[1024];

       memset(buf,'\0',sizeof(buf));

   stream=popen("ls -l","r");//ls -a的命令通過管道讀取(r)stream

 

      wstream=fopen("myopen.txt","w+");//新建一個可寫的文件

      fread(buf,sizeof(char),sizeof(buf),stream);//stream中的數據流讀取到buf

      fwrite(buf,sizeof(char),sizeof(buf),wstream);//buf的數據寫到wstream

      fclose(wstream);

      pclose(stream);

      return 0;

  }   

 運行結果:

popen函數的用法及注意事項

 

                                                                                                                                                      

                                                                                                                                                                                                                                                                                                     

 

 

 

 

 

 


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

涟源市| 嘉祥县| 共和县| 昭觉县| 淮南市| 广丰县| 涟水县| 广德县| 农安县| 开鲁县| 赤城县| 阜康市| 扶沟县| 壶关县| 历史| 六盘水市| 南丰县| 香格里拉县| 东莞市| 许昌县| 西安市| 南乐县| 荔浦县| 温泉县| 娱乐| 苏州市| 甘孜| 杨浦区| 仙桃市| 奉节县| 同仁县| 察隅县| 大化| 甘德县| 水城县| 延庆县| 永和县| 齐齐哈尔市| 博野县| 柳州市| 呼玛县|