From 2497c1392b81e093f4de2541a98746aebd449a7f Mon Sep 17 00:00:00 2001 From: Peter Wu Date: Wed, 26 Sep 2012 15:04:18 +0200 Subject: Initial commit --- pipe.c | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 pipe.c (limited to 'pipe.c') diff --git a/pipe.c b/pipe.c new file mode 100644 index 0000000..ae114db --- /dev/null +++ b/pipe.c @@ -0,0 +1,35 @@ +#include +#include +#include +#include +#include +#include + +#define F(cmd) ( (r=cmd),r<0?(perror(#cmd),exit(1),r):r ) + +int main() { + int r; + int pA[2]; + int f = F(open("mehlog", O_CREAT | O_APPEND | O_WRONLY, 0644)); + pipe(pA); + //pipe(pB); + if (!F(fork())) { + close(f); + dup2(pA[1], STDOUT_FILENO); + close(pA[0]); + close(pA[1]); + F(execlp("cat", "cat", NULL)); + } + close(pA[1]); + if (!F(fork())) { + dup2(f, STDOUT_FILENO); + dup2(pA[0], STDIN_FILENO); + close(pA[0]); + close(f); + F(execlp("rev", "rev", NULL)); + } + close(pA[0]); + close(f); + wait(NULL); + return 0; +} -- cgit v1.2.1