• <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下的管道編程技術(6)

    發表于:2013-03-06來源:開源黃頁作者:天狼星點擊數: 標簽:linux
    6: ...{ 7: int pfds[2]; 8: 9: if ( pipe(pfds) == 0 ) ...{ 10: 11: if ( fork() == 0 ) ...{ 12: 13: close(1); 14: dup2( pfds[1], 1 ); 15: close( pfds[0] ); 16: execlp( ls, ls, -1, NULL ); 17: 18: } else
    6: ...{
    7: int pfds[2];
    8:
    9: if ( pipe(pfds) == 0 ) ...{
    10:
    11: if ( fork() == 0 ) ...{
    12:
    13: close(1);
    14: dup2( pfds[1], 1 );
    15: close( pfds[0] );
    16: execlp( "ls", "ls", "-1", NULL );
    17:
    18: } else ...{
    19:
    20: close(0);
    21: dup2( pfds[0], 0 );
    22: close( pfds[1] );
    23: execlp( "wc", "wc", "-l", NULL );
    24:
    25: }
    26:
    27: }
    28:
    29: return 0;
    30: }

      在該程序中,需要格外關注的是,我們的子進程把它的輸出重定向的管道的輸入,然后,父進程將它的輸入重定向到管道的輸出。這在實際的應用程序開發中是非常有用的一種技術。

      2.3 mkfifo函數

      mkfifo函數的作用是在文件系統中創建一個文件,該文件用于提供FIFO功能,即命名管道。前邊講的那些管道都沒有名字,因此它們被稱為匿名管道,或簡稱管道。對文件系統來說,匿名管道是不可見的,它的作用僅限于在父進程和子進程兩個進程間進行通信。而命名管道是一個可見的文件,因此,它可以用于任何兩個進程之間的通信,不管這兩個進程是不是父子進程,也不管這兩個進程之間有沒有關系。Mkfifo函數的原型如下所示:

    原文轉自: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>