• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • Linux下的管道編程技術(2)

    發表于:2013-03-06來源:開源黃頁作者:天狼星點擊數: 標簽:linux
    11: const char *string=...{A sample message.}; 12: int ret, myPipe[2]; 13: char buffer[MAX_LINE+1]; 14: 15: /**//* 建立管道 */ 16: ret = pipe( myPipe ); 17: 18: if (ret == 0) ...{ 19: 20: /**//* 將
    11: const char *string=...{"A sample message."};
    12: int ret, myPipe[2];
    13: char buffer[MAX_LINE+1];
    14:
    15: /**//* 建立管道 */
    16: ret = pipe( myPipe );
    17:
    18: if (ret == 0) ...{
    19:
    20: /**//* 將消息寫入管道 */
    21: write( myPipe[PIPE_STDOUT], string, strlen(string) );
    22:
    23: /**//* 從管道讀取消息 */
    24: ret = read( myPipe[PIPE_STDIN], buffer, MAX_LINE );
    25:
    26: /**//* 利用Null結束字符串 */
    27: buffer[ ret ] = 0;
    28:
    29: printf("%s\n", buffer);
    30:
    31: }
    32:
    33: return 0;
    34: }

      上面的示例代碼中,我們利用pipe調用新建了一個管道,參見第16行代碼。 我們還建立了一個由兩個元素組成的數組,用來描述我們的管道。我們的管道被定義為兩個單獨的文件描述符,一個用來輸入,一個用來輸出。我們能從管道的一端 輸入,然后從另一端讀出。如果調用成功,pipe函數返回值為0。返回后,數組myPipe中存放的是兩個新的文件描述符,其中元素myPipe[1]包 含的文件描述符用于管道的輸入,元素myPipe[0] 包含的文件描述符用于管道的輸出。

      在第21行代碼,我們利用write函數把消息寫入管道。站在應用程序的角度,它是在向stdout輸出?,F在,該管道存有我們的消息,我們可以利用第 24行的read函數來讀它。對于應用程序來說,我們是利用stdin描述符從管道讀取消息的。read函數把從管道讀取的數據存放到buffer變量 中。然后在buffer變量的末尾添加一個NULL,這樣就能利用printf函數正確的輸出它了。在本例中的管道可以利用下圖解釋:

    原文轉自:http://yp.oss.org.cn/blog/show_resource.php?resource_id=598

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>