// Simple pipe example #include #include #include #include #include #include #include int main(void) { int fd[2]; pid_t pid; char buffer[10] = {0}; if(pipe(fd) < 0){ perror(NULL); exit(1); } pid = fork(); assert(pid >= 0); if (pid != 0) { // parent close(fd[0]); // writer, don't need fd[0] write(fd[1], "123456789\n", 10); close(fd[1]); waitpid(pid, NULL, 0); } else { dup2(fd[0], 0); close(fd[0]); close(fd[1]); char *argv_wc[] = {"/usr/bin/wc", NULL}; execv(argv_wc[0],argv_wc); perror("exec"); return 1; } return 0; }