首頁  >  文章  >  php教程  >  Linux C程式設計 - 管道pipe

Linux C程式設計 - 管道pipe

高洛峰
高洛峰原創
2016-12-13 11:37:191429瀏覽

在linux中,管道也是一種文件,只不過比較特殊,我們可以用pipe函數創建一個管道,其原型聲明如下:

#inlcude 

int pipe(int fields[2]) ;

其實它相當於一個通訊緩衝區,fields[0]用來讀,fields[1]用來寫。在下面的例子中,建立一個管道作為通訊緩衝區,父進程創建了一個子進程,子進程通過管道的fields[1]描述符想管道中寫入一個字串,而父進程則利用管道的fields[ 0] 從管道中讀取這個字符串並顯示出來:

#include 
#include 
#include 
#include ing.h>
#includeh>
#include 
#include 

#define BUF_SIZ    255   v)
{
    char buffer[BUF_SIZ + 1];
    int fd[2];

// rece  {
        fprintf(stderr, "Usage: %s stringna", argv [0]);
        exit(1);
    }

// create pipe for communication         fprintf(stderr, "Create pipe error: %sna", strerror( errno));
        exit(1);
    }

    if ( fork() == 0    {
        close(fd[0]);
        printf("Child %ld write to pipena", getpid()); 
        snprintf(buffer, BUF_SIZ, "%s", argv[1]));        printf("Child % ld quit.na", getpid());
    }
    else     // in parent process, fd[1]);
        printf("Parent %ld read from pipena", getpid( ));
        memset(buffer, '

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
上一篇:Linux pipe函數下一篇:Linux pipe函數