/* * (c) SPDsoft 1994 * 24 julio 1994 * * Launch two processes: * output cmd[0] -> input cmd[1] * input cmd[0] <- output cmd[1] */ #include #include #include main(int argc, char **argv) { pid_t pid; int pipefd[2][2]; int i; char **cmd[2]; extern int errno; char strerr[256]; cmd[0] = &argv[1]; cmd[1] = NULL; for(i=1; ( i (pid_t)0) { close(0); close(1); dup (pipefd[0][0]); dup (pipefd[1][1]); close (pipefd[1][0]); close (pipefd[0][1]); execvp(*cmd[1], cmd[1]); sprintf(strerr,"%s: Can't execvp %s (%s)\n", argv[0], *cmd[1], strerror(errno)); write(2, strerr, strlen(strerr)); exit(errno); } else perror("fork"); exit(errno); }