Exec et signaux
Comment surveiller les processus? Avant d’aller plus loin, vous aurez sans doute besoin de cette commande : ps –A u: permet d’afficher tout les processus en cours grep eleve : permet de sélectionner toutes les lignes qui contiennent eleve Donc une commande comme ça : ps –A u|grep eleve Permet d’afficher tous les processus qui contiennent le mot eleve
Ce qu’on sait faire On sait dupliquer un processus : fork On sait faire exécuter un code différent entre le père et le fils En utilisant le code de retour du fork() Faire attendre un processus : sleep(nbSec) et wait() Fork()
Ce qu’on va apprendre Savoir changer le code d’un programme à la volée exec() Plusieurs variantes existent, la plus courante : execl("/bin/ls", "ls", "-a“,…, 0) ; Combinaison de fork et de exec : lancement d’un nouveau processus Source de hacking !
Exec Grace à cet appel, on remplace l’image mémoire du processus par la commande appelée Rien n’est plus exécuté après cet appel ! Sauf erreur… A tester… code=execl("/bin/ls", "ls", "-a", 0) ; if (code != 0){ cout<< "erreur"; } cout<<"après exec…";
Exec et Fork ! Grace à cette combinaison, on peut faire plein de choses ! fork() exec()