#include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <stdio.h> #include <unistd.h> #include <errno.h> #include <string.h> #include <sys/wait.h> #include <stdlib.h> int main(int argc, char *argv[]) { pid_t pid; if (argc < 2) { fprintf(stderr, "Error: Please enter a command.\n"); return EXIT_FAILURE; } else if ( strcmp(argv[1], "./mycopy")== 0){ if (argc != 4){ fprintf(stderr, "Error: Invalid number of arguments.\n"); return EXIT_FAILURE; } pid = fork(); if (pid < 0){ fprintf(stderr, "An error occured\n"); return EXIT_FAILURE; } if (pid == 0) execl(argv[1], argv[1], argv[2], argv[3], NULL); else waitpid(pid, NULL, 0 ); } else if ( strcmp(argv[1], "./myremove")== 0){ if (argc != 3){ fprintf(stderr, "Error: Invalid number of arguments.\n"); return EXIT_FAILURE; } pid = fork(); if (pid < 0){ fprintf(stderr, "An error occured\n"); return EXIT_FAILURE; } if (pid == 0) execl(argv[1], argv[1], argv[2], NULL); else waitpid(pid, NULL, 0 ); } else if ( strcmp(argv[1], "./mymove")== 0){ if (argc != 4){ fprintf(stderr, "Error: Invalid number of arguments.\n"); return EXIT_FAILURE; } pid = fork(); if (pid < 0){ fprintf(stderr, "An error occured\n"); return EXIT_FAILURE; } if (pid == 0) execl(argv[1], argv[1], argv[2], argv[3], NULL); else waitpid(pid, NULL, 0 ); } else { fprintf(stderr, "Error: Please enter a command.\n"); return EXIT_FAILURE; } }