int main () {
// Forsøg på at erstatte den aktuelle proces med "ls -l"
if (execlp ("ls", "ls", "-l", null) ==-1) {
// nå kun dette, hvis execlp mislykkes
Perror ("execlp mislykkedes");
retur 1;
}
// denne linje nås aldrig
printf ("Dette vil aldrig blive trykt. \ n");
return 0;
}
`` `
hvorfor `exec` er nyttig
* Effektivitet: Det undgår omkostningen ved at skabe en ny proces og styre dens hukommelsesrum.
* Direkte kontrol: Giver en mekanisme til en proces, der problemfrit overgår til et andet program.
Nøglepunkter
* `exec` -varianter (` execl`, `execv`,` execlp`, `execvp`) har alle den samme opførsel med hensyn til returværdier.
* Hvis `exec` mislykkes (f.eks. Fil ikke fundet, tilladelsesproblemer), returnerer den` -1` og indstiller 'errno' for at indikere fejlen.
* For at få et program til at udføre et andet og derefter fortsætte, skal du bruge `gaffel 'til at oprette en børneproces, før du ringer til` exec` i barnet.
Fortæl mig, hvis du har andre spørgsmål om `exec 'eller processer i Unix!