| Hjem | Hardware | Netværk | Programmering | software | Fejlfinding | systemer | 
systemer  
  • Basale computerfærdigheder
  • Linux
  • Mac OS
  • Ubuntu
  • Unix
  • Windows
  • Windows Vista
  • Windows XP
  • Windows 7
  • Windows 10
  • Windows 11
  • Windows 2012
  • Windows 2016
  • Windows 2019
  • Windows 2022
  • Apple
  • Android
  • iOS
  • CentOS
  •  
    Computer Viden >> systemer >> Unix >> Content
    Hvornår vender et opkald til exec i UNIX?
    I Unix returnerer et opkald til `exec` aldrig Hvis det lykkes. Her er hvorfor:

    * udskiftning, ikke udførelse: `Exec` udfører ikke * et nyt program i traditionel forstand. Det * erstatter * den aktuelle process image med det nye programs image. Dette betyder, at den originale proces i det væsentlige forsvinder, og det nye program indtager sin plads.

    * direkte kontroloverførsel: Systemopkaldet 'Exec' overfører direkte kontrol til det nye program uden at vende tilbage til den, der ringer. Det er som om den originale proces "byttes ud" til den nye.

    Eksempel:

    `` c

    #include

    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!

    Forrige :

    næste : No
      Relaterede artikler
    ·Er den dejlige kommando nyttigt på multiprocessor Unix…
    ·Sådan Slet udskriftsjob i Unix 
    ·Hvad er et filter i Unix? 
    ·Er et Unix rigtigt operativsystem? 
    ·Arbejder Unix -kommandoer i Linux? 
    ·Tutorial på Unix ZFS 
    ·Specifikationerne for Unix Operating System 
    ·Definition af et alias i et Unix miljø 
    ·Hvordan fjerner man i Unix en mappe, der ikke er tom? 
    ·Sådan Unzip i Unix 
      Anbefalede Artikler
    ·Skal du Linux installere Ubuntu? 
    ·Sådan slette mapper på en Mac Desktop 
    ·Hvad er den nemmeste måde at lære at bruge en MAC? 
    ·Hvordan fungerer mappestrukturen i Linux? 
    ·Sådan kopieres og Sæt ind jQuery 
    ·Hvordan at reparere en Master Boot Record 
    ·Sådan Dial Out i Ubuntu 
    ·Hvordan til at dræbe en ActiveSync proces 
    ·Sådan bruges en ny kerne for at kompilere i Ubuntu 
    ·Sådan gendannes beskadigede sektorer i en Hard Drive 
    Copyright © Computer Viden https://www.computerdk.com