| Hjem | Hardware | Nettverk | Programmering | Software | Feilsøking | Systems | 
Systems  
  • Grunnleggende datakunnskaper
  • 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
  •  
    Datamaskin >> Systems >> Unix >> Content
    Når returnerer en oppfordring til exec i Unix?
    I Unix kommer en oppfordring til `exec` aldri tilbake Hvis det lykkes. Her er grunnen:

    * Erstatning, ikke utførelse: `Exec` utfører ikke * et nytt program i tradisjonell forstand. Det * erstatter * den nåværende prosessens image med det nye programmets image. Dette betyr at den opprinnelige prosessen i det vesentlige forsvinner, og det nye programmet tar sin plass.

    * Direkte kontrolloverføring: Systemanropet for `Exec` overfører direkte kontroll til det nye programmet uten å gå tilbake til den som ringer. Det er som om den opprinnelige prosessen er "byttet ut" for den nye.

    Eksempel:

    `` c

    #include

    int main () {

    // Forsøk å erstatte den nåværende prosessen med "LS -L"

    if (execlp ("ls", "ls", "-l", null) ==-1) {

    // bare nå dette hvis execlp mislykkes

    Perror ("execlp mislyktes");

    retur 1;

    }

    // Denne linjen vil aldri bli nådd

    printf ("Dette vil aldri bli skrevet ut. \ n");

    retur 0;

    }

    `` `

    hvorfor `exec` er nyttig

    * Effektivitet: Den unngår overhead ved å lage en ny prosess og administrere minneplassen.

    * Direkte kontroll: Tilbyr en mekanisme for en prosess for å sømløst gå over til et annet program.

    Nøkkelpunkter

    * `exec` varianter (` execl`, `execv`,` execlp`, `execvp`) har alle samme oppførsel når det gjelder returverdier.

    * Hvis `exec` mislykkes (f.eks. Fil ikke funnet, tillatelsesproblemer), returnerer den` -1` og setter `errno` for å indikere feilen.

    * For å få et program utføre et annet og deretter fortsette, må du bruke `gaffel` for å lage en barneprosess før du ringer` exec` i barnet.

    Gi meg beskjed hvis du har andre spørsmål om `exec` eller prosesser i UNIX!

    früher :

     Weiter: No
      Relatert Artike
    ·Hvordan Shutdown eller Reboot en Unix maskin 
    ·Hva brukes kommandoen til? 
    ·Hva er betydningen av UNIX? 
    ·Når du er logget på en root-Linux, endres shell-promp…
    ·Hvordan Query XL arbeidsbok fra Unix 
    ·Hvordan lage en myk Link i UNIX 
    ·Hvordan endre bakgrunnsfargen på en Unix Root Terminal…
    ·Hva er UNIX SEQ? 
    ·Hvordan bruke Grep Rekursivt i et Unix Sti 
    ·Om Unix 
      Anbefalte artikler
    ·Hva er noen fordeler med datamaskinen? 
    ·Hva er Windows Task Manager 
    ·Slik fjerner frakoblede filer fra Cache 
    ·Typer av vindusrammer 
    ·Hvordan Stopp XP fra å spørre for å endre passordet 
    ·Hvordan kan jeg deaktivere automatisk pålogging til si…
    ·Slik aktiverer Oppgavebehandling Group Policy 
    ·Hvordan bli kvitt TSS 
    ·Slik feilsøker utskriftskøtjenesten feil 
    ·Slik aktiverer eller deaktiverer du administratorkonto …
    Copyright ©  Datamaskin  http://www.datamaskin.biz/