#include #include #include #include #include int main(int argc, char *argv[]) { pid_t pid; int nb_pipe = 0; int valDei; char *argument[10]; if (argc <= 1) { perror("pas le bon nb argument"); exit(0); } if (argc >= 10) { perror("trop d'arguments"); exit(0); } for (int i = 0; i < argc; i++) { argument[i] = argv[i+1]; if (strcmp(argument[i],"|") == 0) { argument[i] = NULL; valDei = i+1; nb_pipe = 1; } } argument[argc-1] = NULL; pid = fork(); if (pid == 0) { if (execvp(argv[1], argument) == -1) { perror("dans le exec"); exit (0); } if (nb_pipe > 0) { if (execvp(argument[valDei], &argument[valDei]) == -1) { perror("dans le exec"); exit (0); } } } else { wait(NULL); } return EXIT_SUCCESS; }