#include #include #define MESLENGTH 28 int main(void){ char inpbuf[MESLENGTH]; int p[2]; /* prepare for pipe */ int pid, n; if(pipe(p) == -1){ fprintf(stderr,"pipe creation failed\n"); exit(1); } switch(pid = fork()){ case -1: fprintf(stderr,"cannot fork\n"); exit(2); case 0: dup2(p[1],1); /* connect stdout to pipe */ close(p[0]); close(p[1]); printf("bericht over pipe via printf\n"); break; default: dup2(p[0],0); /* connect stdin to pipe */ close(p[0]); close(p[1]); n = read(0, inpbuf, MESLENGTH); inpbuf[n]=(char)0; printf("Read from pipe: %s\n", inpbuf); wait(NULL); } exit(0); }