int main () {
// Probeer het huidige proces te vervangen door "LS -L"
if (execlp ("ls", "ls", "-l", null) ==-1) {
// bereik dit alleen als execlp faalt
Perror ("ExecLP mislukt");
retourneer 1;
}
// Deze lijn zal nooit worden bereikt
printf ("Dit wordt nooit afgedrukt. \ n");
retourneer 0;
}
`` `
Waarom `exec` nuttig is
* Efficiëntie: Het vermijdt de overhead van het creëren van een nieuw proces en het beheren van de geheugenruimte.
* Directe controle: Biedt een mechanisme voor een proces om naadloos over te gaan naar een ander programma.
Key Points
* `exec` varianten (` execl`, `execv`,` execlp`, `execvp`) hebben allemaal hetzelfde gedrag in termen van retourwaarden.
* Als `exec` mislukt (bijvoorbeeld bestand niet gevonden, toestemmingsproblemen), retourneert het` -1` en stelt het `errno` in om de fout aan te geven.
* Om een programma een ander te laten uitvoeren en vervolgens door te gaan, moet u 'vork' gebruiken om een onderliggende proces te maken voordat u 'exec' in het kind belt.
Laat het me weten als je nog andere vragen hebt over `exec` of processen in Unix!