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
| #include <stdlib.h> // pour exit()
#include <unistd.h> // pour getpid()
#include <signal.h> // pour sleep()
#include <sys/types.h> // pour fork()
#include <stdio.h> // pour printf()
int main()
{
char buf[256];
int pid;
int status;
printf("%%"); // imprimer un prompt %
while(fgets(buf,256,0)!= NULL)
{
buf[strlen(buf)-1]=0;
if((pid==fork())<0) // erreur de fork
{ printf("Erreur de fork()");
exit(127);
break;
}else if (pid == 0) // Processus Fils
{
execlp(buf,buf,(char *)0);
printf("%s n a pu etre executée\n",);
exit(127);
}
// Processus Père
if ((pid==waitpid(pid,&status, 0))<0)
{ printf("erreur dans wait\n");
Exit(127);
} printf("%%");
}
exit(0);
} |
Partager