首頁 > php教程 > PHP开发 > Linux C程式設計 - 管道pipe

Linux C程式設計 - 管道pipe

高洛峰
發布: 2016-12-13 11:37:19
原創
1495 人瀏覽過

在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, '

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門推薦
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板