管道编程之pipe

2014-11-24 02:49:09 · 作者: · 浏览: 2

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

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

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

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

[cpp]
#include
#include
#include
#include

#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);
}
}
}

#include
#include
#include
#include

#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);
}
}
}