#include #include main(int argc, char **argv) { int k, p[2]; char *a1, *a2; a1 = NULL; a2 = NULL; open("f1", O_RDONLY); open("f2", O_RDONLY); open("fout-1", O_WRONLY | O_CREAT | O_TRUNC, 0666); open("fout-2", O_WRONLY | O_CREAT | O_TRUNC, 0666); pipe(p); for (k = 1; k < argc; k++) { if (strcmp(argv[k], "d1") == 0) { dup(atoi(argv[k+1])); k++; } else if (strcmp(argv[k], "d2") == 0) { dup2(atoi(argv[k+1]), atoi(argv[k+2])); k += 2; } else if (strcmp(argv[k], "f") == 0) { if (fork() == 0) { while(strcmp(argv[k], "e") != 0) k++; } } else if (strcmp(argv[k], "e") == 0) { k = argc; } else if (strcmp(argv[k], "c") == 0) { close(atoi(argv[k+1])); k++; } else { a1 = argv[k]; a2 = argv[k+1]; k++; } } execlp("wcat", "wcat", a1, a2, NULL); printf("Issues\n"); }