Merci Corentin !
En tenant compte de tes suggestions, j'ai finalement pu ajouter quelques instructions au niveau du parent:
if(tmp!=0){// parent : attendre la fin de l'enfantif(*mot[i-1]=='&'){*mot[i-1]='0円';pid_tpid,pid1;intetat;if((pid1=fork())==0)exit(1);elseif((tmp)==0)sleep(2),exit(2);else{pid=waitpid(tmp,&etat,0);printf(" fils termine %d son etat %d \n",pid,etat);}}continue;}
En essayant quelques exemples sur le mini shell, j'ai ces résultats:
? echo essai1 &
essai1 &
fils termine 21473 son etat 0
? echo essai2 &
essai2 &
fils termine 21475 son etat 0
? echo essai3 &
essai3 &
fils termine 21480 son etat 0
Au vue des résultats, mes instructions sont-elles optimales surtout pour la gestion de plusieurs processus en arrière plan ? Aussi pourquoi en affichant l'echo, il affiche avec le symbole '&' à la fin ? C'est un peu désagréable, comment me débarrasser de cela ? Merci
[^] # Re: Fonction mini shell
Posté par roger91 . En réponse au message Commande qui ne fonctionne pas. Évalué à 1. Dernière modification le 03 décembre 2015 à 23:29.
Merci Corentin !
En tenant compte de tes suggestions, j'ai finalement pu ajouter quelques instructions au niveau du parent:
En essayant quelques exemples sur le mini shell, j'ai ces résultats:
Au vue des résultats, mes instructions sont-elles optimales surtout pour la gestion de plusieurs processus en arrière plan ? Aussi pourquoi en affichant l'echo, il affiche avec le symbole '&' à la fin ? C'est un peu désagréable, comment me débarrasser de cela ? Merci