summaryrefslogtreecommitdiff
path: root/userspace/piper.c
blob: e433a5c6411c4341f6c82cbecd98933e711849e9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <stdio.h>
#include "newcalls.h"
int main()
{
    int fds[2];
    _pipe(fds);

    printf("opened pipe / in fd=%d,out fd=%d\n",fds[0],fds[1]);

    int pid=_fork();

    if(pid)
    {
	while(1) // read forever from our pipe and echo to stdout
	{
	    char buf[256];
	    int len=fread(buf,1,255,fds[0]);
	    printf("%s",buf);
	}

    }
    else
    {

	// write to our pipe
	fwrite("Hello\n",1,6,fds[1]);
	fwrite("Bello\n",1,6,fds[1]);
	fwrite("Gello\n",1,6,fds[1]);

	// hang forever
	while(1);
    }

}