#include #include #include #include main(int argc, char **argv[]) { int done; int pid; int fds[2]; char *cmdargv[2]; if (argc < 3) { printf("USAGE: %s \n", argv[0]); exit(1); } pipe(fds); pid = fork(); if (pid) { /* parent code */ close(fds[1]); dup2(fds[0], STDIN_FILENO); cmdargv[0] = (char *)argv[2]; cmdargv[1] = NULL; execvp((const char *)argv[2], cmdargv); } else { close(fds[0]); dup2(fds[1], STDOUT_FILENO); cmdargv[0] = (char *)argv[1]; cmdargv[1] = NULL; execvp((const char *)argv[1], cmdargv); } }