1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
| #include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <signal.h>
#include <string.h>
#include <sys/wait.h>
int main(int argc, char *argv[]){
int status;
char buffer[500];
printf("\nDans MON SHELL écrire \"exit\" pour quitter\n");
int pid = fork();
if(pid == -1){
perror("Une erreur c'est produite : création du fork");
return EXIT_FAILURE;
}
if(pid == 0){
while(1){
printf("MONSHELL > : ");
scanf("%s", buffer);
if (strcmp("exit", buffer) == 0){
exit(0);
}else if(strcmp("dir", buffer) == 0){ //je ne retrouve pas mon promp pour entrer par exemple ctr...
execl("/bin/ls", "ls", "-l", NULL);
}else if(strcmp("ctr", buffer) == 0){
execl("/usr/bin/clear", "clear", NULL);
}else if(strcmp("environ", buffer) == 0){
execl("/usr/bin/env", "env", NULL);
}else if(strcmp("echo", buffer) == 0){ //ici si j'écris echo cmd j'aimerai que seulement le cmd affiche....
printf("%s\n", &buffer);
}else{
printf("Commande inconnue ...\n");
}
}//fin wihile
}//fin if =0
if(pid > 0){
if(wait(NULL) == -1){
perror("erreur de wait cote parent\n");
exit(EXIT_FAILURE);
}
}//fin if > 0
return EXIT_SUCCESS;
}//fin main |
Partager