• [^] # Re: Fonction mini shell

    Posté par . En réponse au message Commande qui ne fonctionne pas. Évalué à 1. Dernière modification le 03 décembre 2015 à 10:20.

    Il faut capturer le symbole '&' dans le mot puis le remplacer par un espace (bien) ou un caractère nul (mieux) :

     if (*mot[i-1] == '&')
     {
     *mot[i-1] = '0円';
     // Mettre ici le code pour le traitement en arrière plan
     }

    Pour le waitpid, elle diffère de wait en ajoutant la possibilité d'attendre un processus particulier et de spécifier des options d'attente comme NOHANG qui permet de ne pas rester bloqué dans la fonction si le processus fils n'est pas terminé. wait(&status) est équivalent à waitpid(-1, &status, 0).
    En remplaçant le paramètre -1 de waitpid par le pid du processus fils, tu n'as plus besoin de faire une boucle while autour de wait.