Quantcast
Channel: CSDN博客推荐文章
Viewing all articles
Browse latest Browse all 35570

管道编程之pipe

$
0
0

pipe():创建一个新的匿名管道

例子中子进程必须等待父进程写入管道之后才能读。

thePipe[0]代表管道的输出,应用程序读它。

thePipe[1]代表管道的输入,应用程序写它。

#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <wait.h>

#define MAX_LINE 80

int main()
{
    int thePipe[2], ret;
    char buf[MAX_LINE+1];
    const char *testbuf = {"a test string."};
    
    if(pipe(thePipe) == 0)
    {   
        if(fork() == 0)   //子进程
        {   
            ret = read(thePipe[0], buf, MAX_LINE);  
            buf[ret] = 0;
            printf("Child read %s\n", buf);
        }   
        else              //父进程   
        {  
            ret = write(thePipe[1], testbuf, strlen(testbuf));
            ret = wait(NULL);
        }   
    }   
}



作者:buaa_shang 发表于2013-4-23 15:08:35 原文链接
阅读:0 评论:0 查看评论

Viewing all articles
Browse latest Browse all 35570

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>