6.3 exec
exec,
lorsque appelée par une tâche, change le programme support de cette tâche.
C'est une transmutation et non une métempsychose !
En effet, on utilise la vie de la tâche qui invoque
exec pour lui faire faire autre chose sans pour cela la tuer.
Une tâche est l'association d'un programme à exécuter et d'une vie,
c'est-à-dire d'un droit à disposer de temps d'unité centrale pour y
être exécutée.
Un appel à
exec en quelque partie que ce soit du programme appelant réinitialise la tâche
pour lui faire exécuter un nouveau programme dont le nom est donné
en argument.
Ce nouveau programme débute, bien sûr, par sa première instruction et
bien qu'exec soit un sous-programme, le programme appelant sera purement et simplement
oublié comme s'il n'avait jamais existé et jamais invoqué
exec.
Quand le nouveau programme sera achevé (à condition qu'il n'appelle pas
lui-même
exec)
la tâche associée sera également achevée.
exec est l'acte magique par excellence :
il transmue une citrouille en un carosse ou un ogre en une souris !
Cette sémantique est très liée à la primitive suivante.