#include #include #include #include #include int main(int argc, char* argv[]) { int fileDes[2]; if (pipe(fileDes) < 0) { perror("pipe"); return 1; } int f = fork(); if (f == 0) { // child if (close(fileDes[1]) < 0) { perror("close"); return 2; } char buf[1024]; int count = argc - 1; while (count > 0) { read(fileDes[0], &buf, 1024); if (buf[0] != '\0') { printf("%s", buf); count--; } } } else { if (close(fileDes[0]) < 0) { perror("close"); return 3; } for (size_t i = 1; i < argc; i++) { write(fileDes[1], argv[i], strlen(argv[i])); sleep(1); } int status; wait(&status); } return 0; }