// Simple pipe example #include #include #include #include #include #include #include int main(void) { int fd[2]; pid_t pid; if( pipe(fd) < 0){ perror(NULL); exit(1); } pid = fork(); assert(pid >= 0); if (pid != 0) { // parent close(fd[1]); // reader: don't need fd[1] FILE *f0 = fdopen(fd[0],"r"); int c; while((c = fgetc(f0)) != EOF){ putchar(c); } fclose(f0); waitpid(pid, NULL, 0); } else { close(fd[0]); // writer, don't need fd[0] FILE *f1 = fdopen(fd[1], "w"); fprintf(f1, "123456789\n"); fclose(f1); } return 0; }